当前位置: 首页 > 面试题库 >

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

翁宏茂
2023-03-14
问题内容

我正在寻找一种通过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<ItemViewModel> 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项目中替换它?

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

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

那么,我该如何实现呢?


问题答案:

问题在于,列表中的模型中的属性没有在其公共属性上获得/设置。换句话说,MVC3的自动JSON绑定仅适用于具有get和set属性的对象属性。

这不会绑定:

public string Str;

这将绑定:

public string Str { get; set; }


 类似资料:
  • 问题内容: 我正在使用Symfony 2开发一个项目,我已经建立了一个捆绑包来处理我的所有数据库服务,这些服务来回传递JSON数据。 我的问题/问题: 是否可以发布简单的JSON对象?目前,我通过给对象起一个名字来欺骗我的ajax调用的普通表单帖子,如果我不给它起一个名字,我似乎无法从Symfony请求对象中获取数据。 我希望能够使用一个服务包来处理来自AJAX调用或常规Symfony形式的数据。

  • 问题内容: 我已经开始尝试使用Django REST框架。到目前为止,我已经成功地为我的对象创建了一个序列化程序,通过Javascript的$ .post()创建了发布视图,发布对象和返回对象。因此,现在我可以在JSON和Django模型对象之间进行适当的转换。 问题是我有一个对象数组[A1,A2,…,An]。现在,当我需要发布这样的数组时,我逐个对象地进行处理。是否有可能一次发布整个数组,并在D

  • 问题内容: 我创建了一个需要发布到jersey的json,这是由grizzly运行的具有REST网络服务的服务器获取需要输出的传入json对象。我正在尝试,但不确定如何正确实施。 我有一个在加载时运行此方法的html文件 问题答案: 要将json发送到服务器,首先必须创建json 这就是构造ajax请求以将json作为post var发送的方式。 json现在将在post var中。

  • 问题内容: 我正在寻找通过GET将JSON对象发送到服务器。克里斯关于通过JSON将对象数组发布到ASP.Net MVC3的答案适用于httpPOST,但不适用于GET。我的情况也适用于POST,但不适用于GET。如何使GET工作正常这是我的情况:在Controller中,我有以下方法publicActionResult Screenreport(Screentable screendata) 我

  • 我正在做一个项目,我请求一个api发布一个项目的详细信息。下面是我试图使用HttpRequest插入body itemstr的代码 这是我的newItem类 我试图将itemStr作为一个主体发布到本地运行的restful API。我可以使用GET请求检索,但不能发布。

  • 问题内容: 我正在努力,并努力通过JSON将数组发送到MVC控制器动作。 这是我所拥有的以及我已经尝试过的… 我该怎么做 ? 编辑:建议从顶部发送“按原样” 发送的邮件-不起作用。我在jquery框架的某处收到一个奇怪的异常:( 我认为这意味着它试图将null分配给它不能分配的东西。 编辑:我正在使用MVC2不是3 Edit2:@Monday的答案之后- 问题是由于我如何构建数组 而并非如此-关于