我有以下问题:
在按钮单击上,我将一些数据发布到服务器。我的控制器动作如下所示:
public ActionResult Accept(List<MyViewModel> entries) { //here entries HAS 2 MyViewModel-Instances in it. //The entries are not null, but the values of the instances are! //entries[0].ParamA is null }
MyViewModel如下所示:
public class MyViewModel { public string ParamA { get; set; } public string ParamB { get; set; } }
而AJAX-Call则是以下的:
var myEntries = { entries: [{ ParamA: "A", ParamB: "B" }, { ParamA: "C", ParamB: "D" }] }; $.ajax({ type: 'POST', url: url, cache: false, data: myEntries, dataType: 'text' });
我已经尝试做的事情:
我在这里做错了什么?
非常非常感谢您对我的帮助!
编辑
我的(Razor)视图目前并不有趣,因为它与任何内容均无关。我没有使用任何HTML.TextBoxFor(或类似方法)来填充myEntries- Variable。它实际上是动态填充的(因为有很多条件)。为了这个问题(和我自己的测试),我对变量进行了硬编码。:)
通过您的回答和JSON.stringify方法的使用,它对我有用
JSON.stringify
var myEntries = { entries: [{ ParamA: "A", ParamB: "B" }, { ParamA: "C", ParamB: "D" }] }; $.ajax({ type: 'POST', url: '/{controller}/{action}', cache: false, data: JSON.stringify(myEntries), dataType: 'json', contentType: 'application/json; charset=utf-8' });