我有以下
javascript代码段:
$.ajax({ url: self.LoadCirculationListUrl,cache: false,async: false,dataType: 'json',contentType: 'application/json; charset=utf-8',data: [ { "ColumnName":"France","Comparitor":"=","Value":"1"},{"ColumnName":"Germany","Comparitor":">","Value":"3"}] });
这是从上面的ajax调用访问的controllre:
public ActionResult LoadCirculationData(IList<CirculationListFilter> filters) { }
这是CirculationListFilter类
public sealed class CirculationListFilter { public string ColumnName { get; set; } public string Comparitor { get; set; } public string Value { get; set; } }
现在当我运行代码时,控制器没有传递给它的JSON集合;过滤器始终为空.但是,如果我这样做:
$.ajax({ url: self.LoadCirculationListUrl,data: { "ColumnName":"Germany","Value":"3"} });
并且控制器是这样的:
public ActionResult LoadCirculationData(CirculationListFilter filters) { }
数据传递正常.为什么控制器无法绑定JSON项的集合?
编辑:
我更改了AJAX调用以使用它:
data: { filters: [{ "ColumnName": "France","Comparitor": "=","Value": "1" },{ "ColumnName": "Germany","Comparitor": ">","Value": "3" }]},
和ActionResult:
public ActionResult LoadCirculationData(List<CirculationListFilter> filters)
现在过滤器里面有2个项目,但是每个CirculationListFilter类在其属性中都填充了NULL数据.所以我越来越近,但实际值并没有被绑定.