mil*_*lin 6 c# json defaultmodelbinder deserialization asp.net-mvc-3
我有一个非常简单的课程:
public class FilterItem
{
public Dictionary<string, string> ItemsDictionary { get; set; }
public FilterItem()
{
ItemsDictionary = new Dictionary<string, string>();
}
}
Run Code Online (Sandbox Code Playgroud)
我想在客户端上填充字典中的数据,然后将其作为JSON对象传递给我的控制器操作.但无论我在客户端上尝试什么,DefaultModelBinder似乎都无法反序列化它.
以下是调用我的操作的示例javascript代码:
var simpleDictionary = {"ItemsDictionary": {"1": "5", "2": "7"}};
$.ajax({ cache: false, type: "POST", data: JSON.stringify(simpleDictionary),
contentType: "application/json; charset=utf-8",
url: "/Catalog7Spikes/GetFilteredProductsJson", success: function (data) {...});
Run Code Online (Sandbox Code Playgroud)
这是我的动作方法的简化版本:
[HttpPost]
public ActionResult GetFilteredProductsJson(FilterItem filterItem)
{
ProductsModel productsModel = new ProductsModel();
return View("SevenSpikes.Nop.UI.Views.Products", productsModel);
}
Run Code Online (Sandbox Code Playgroud)
请注意,相反的工作.当作为JsonResult传递时,FilterItem对象被成功序列化并作为JSON对象传递给客户端.然而,尝试反过来却行不通.
我读了关于Connect的票,并认为解决方法可行,但事实并非如此.
是否有可能使用ASP.NET MVC 3中的DefaultModelBinder反序列化.NET字典?
您尝试过以下方法吗?
var simpleDictionary = {"ItemsDictionary": {"1": "5", "2": "7"}};
$.ajax({ cache: false, type: "POST", data: {filterItem : JSON.stringify(simpleDictionary)},
contentType: "application/json; charset=utf-8",
url: "/Catalog7Spikes/GetFilteredProductsJson", success: function (data) {...});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3153 次 |
| 最近记录: |