开发者社区> 问答> 正文

通过JSON将对象数组发布到ASP.Net MVC3

我正在寻找一种通过JSON将对象数组发布到MVC3的解决方案。

我正在处理的示例代码:http : //weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx

JS:

var data = { ItemList: [ {Str: 'hi', Enabled: true} ], X: 1, Y: 2 };

$.ajax({ url: '/list/save', data: JSON.stringify(data), success: success, error: error, type: 'POST', contentType: 'application/json, charset=utf-8', dataType: 'json' }); ListViewModel.cs:

public class ListViewModel { public List ItemList { get; set; } public float X { get; set; } public float Y { get; set; } } ItemViewModel.cs:

public class ItemViewModel { public string Str; // originally posted with: { get; set; } public bool Enabled; // originally posted with: { get; set; } } ListController.cs:

public ActionResult Save(ListViewModel list) { // Do something } POST的结果:

将list设置为ListViewModel。设置 其X和Y属性。设置 基础的ItemList属性 。ItemList包含一个项目, 该项目应为未初始化。Str为null,Enabled为false。

换句话说,这就是我从MVC3的模型绑定中得到的结果:

list.X == 1 list.Y == 2 list.ItemList != null list.ItemList.Count == 1 list.ItemList[0] != null list.ItemList[0].Str == null MVC3 JsonValueProvider似乎不适用于复杂对象。我该如何工作?我需要修改现有的MVC3 JsonValueProvider并对其进行修复吗?如果是这样,我如何获得它并在MVC3项目中替换它?

我已经没有用过的相关StackOverflow问题:

Asp.net Mvc Ajax Json(后数组) 使用MVC2和较旧的基于表单的编码-这种方法对于包含对象数组的对象会失败(JQuery无法对其进行正确编码)。

使用JSON发布一系列复杂对象,JQuery到ASP.NET MVC Controller。 我想避免在Controller收到一个纯字符串的地方,然后由它手动对自己进行反序列化,而不是利用框架,这是我想避免的。

MVC3 RC2 JSON发布绑定未正常工作 未设置他的内容类型-它在我的代码中设置。

如何使用JSON,jQuery将复杂对象数组发布到ASP.NET MVC Controller? 这个可怜的家伙不得不写一个JsonFilter只是为了解析一个数组。我宁愿避免的另一种攻击。

那么,我该如何实现呢? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 12:09:28 575 0
1 条回答
写回答
取消 提交回答
  • 除之外{ get; set; },以下是JSON绑定支持的一些条件:

    这是ASP.NET MVC 3中的新功能(请参阅“ JavaScript和AJAX改进 ”)。 JSON对象的字符串(“ X”,“ Y”,“ Str”和“ Enabled”)必须与ViewModel对象的属性匹配。 ViewModel对象的属性必须具有{ get; set; }方法。 必须在请求中将内容类型指定为“ application / json”。 如果仍然无法使用,请检查JSON字符串以确保其有效。

    2020-02-09 12:10:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载