我正在尝试使用MVC3和JSON进行模型绑定,但是运气不佳…不管我做什么,我似乎都null
在服务器上获取模型。
方法签名:
public ActionResult FilterReports(DealSummaryComparisonViewModel model)
Javascript已 更新 :
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#filter-reports').click(filterReports);
});
function filterReports() {
var filters = {
SelectedRtoId: $('#SelectedRtoId').val(),
SelectedPricingPointId: $('#SelectedPricingPointId').val(),
SelectedLoadTypeId: $('#SelectedLoadTypeId').val(),
SelectedBlockId: $('#SelectedBlockId').val(),
SelectedRevisionStatusId: $('#SelectedRevisionStatusId').val()
}
var dealSummaries = { SelectedItemIds: $('#SelectedItemIds').val() }
var model = { ReportingFilters: filters, DealSummaries: dealSummaries }
$('#selected-items select option').attr("selected", "selected");
$.ajax({
url: '@Url.Action("FilterReports")',
data: model,
contentType: 'application/json',
dataType: 'json',
success: function (data) {
alert(data);
}
});
}
</script>
楷模:
public class DealSummaryComparisonViewModel
{
public ReportingFiltersViewModel ReportingFilters { get; set; }
public LadderListViewModel DealSummaries { get; set; }
}
public class LadderListViewModel
{
public MultiSelectList AvailableItems { get; set; }
public int[] SelectedItemIds { get; set; }
public MultiSelectList SelectedItems { get; set; }
}
public class ReportingFiltersViewModel
{
public int? SelectedRtoId { get; set; }
public ICollection<Rto> Rtos { get; set; }
public int? SelectedPricingPointId { get; set; }
public ICollection<PricingPoint> PricingPoints { get; set; }
public int? SelectedLoadTypeId { get; set; }
public ICollection<LoadType> LoadTypes { get; set; }
public int? SelectedBlockId { get; set; }
public ICollection<Block> Blocks { get; set; }
public int? SelectedRevisionStatusId { get; set; }
public ICollection<RevisionStatus> RevisionStatuses { get; set; }
public bool? DealStatus { get; set; }
}
该模型在客户端看起来不错:
{"ReportingFilters":{
"SelectedRtoId":"5",
"SelectedPricingPointId":"20",
"SelectedLoadTypeId":"55",
"SelectedBlockId":"21",
"SelectedRevisionStatusId":"11"
},"DealSummaries":{
"SelectedItemIds":["21","22","23","24","25"]
}}
那为什么我什么也没回到控制器上呢?在过去的两天里,这一直给我带来麻烦,请帮忙!谢谢!!
更新
我已经将我的javascript部分更新为我当前正在使用的部分。现在,此部分将模型与ReportingFilers和DealSummaries对象一起返回给控制器,但是其中的所有值均为null。
它可能与字符串值有关吗?如果是这样,我该如何解决?
将$ .getJSON行更改为:
$.ajax({
url: '@Url.Action("FilterReports")',
data: JSON.stringify(viewModel),
contentType: 'application/json',
dataType: 'json',
success: function (data) { alert(data); }
});
这样,MVC知道它正在接收JSON,并将其正确绑定到模型。
问题内容: 我正在使用Asp.net MVC3,并尝试在服务器上做一个简单的Ajax发布,它返回部分视图并在搜索过程中更新我的项目列表。 Ajax成功调用服务器,服务器通过发送部分视图进行响应。但是部分视图始终在新页面中呈现。我发现这是因为它不知道即将到来的ajax调用,因此它呈现了一个新页面。 我的控制器代码非常简单: 但是无论如何,Request.IsAjaxRequest()始终返回fals
问题内容: 这个问题已经问了很多遍了,但是我发现所有的解决方案都没有用。让我认为这可能是一个新问题,也许是ASP.NET MVC 3特有的问题。 我正在使用JQuery Ajax对ASP.NET MVC 3控制器进行简单调用。像这样 控制器看起来像这样 这不起作用,尽管它应该基于Scottgu 帖子的“ JavaScript和AJAX改进”部分 我已经尝试过许多不同的变化,例如: 然后将以上两种方
请看一下查询: 基本上,我希望查询获取TableA上的最新条目(列ID是AI),条件是列A='foo'。 查询将顺利运行并返回我需要的内容。如果没有与条件ColumnA='foo'匹配的表项,则结果为空。 说到这里,我添加了一个CASE来返回1。否则,返回Id。下面是新的查询: 使用给定的查询,如果条件为false,则不会有任何结果。它是空白的。甚至不是空的。 问题是,这是为什么?在我看来,结果应
我无法理解为什么findFragmentByTag()在我的代码中返回null。我已经在片段onCreate()上设置了RetainInstance(true),并且正在使用getSupportFragmentManager()。findFragmentByTag(),因为它是SherlockFragmentActivity。 这是我的活动代码: } 这是我的片段代码:
下面是我的控制器代码:- 以下是我的服务代码:- 下面是我的存储库代码:-
问题内容: 我想获取执行.py文件的当前目录的路径。 例如,一个带有代码的简单文件: 输出奇怪的是: 我期待从和获得相同的结果。 给定,为什么 返回空? 问题答案: 因为不成立。我们宁愿有 双方并只拆分通过文件名成组件,而不考虑当前目录。如果您还想考虑当前目录,则必须明确地考虑。 要获取绝对路径的目录名,请使用