我有以下问题:
在按钮单击上,我将一些数据发布到服务器。我的控制器动作如下所示:
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' });
我已经尝试做的事情:
- 将数据类型更改为“json”
- 使用:传统:真
- 试过 var myEntries = JSON.stringify(...);
- 试过 var myEntries = { entries : [JSON.stringify({ ... }), JSON.stringify({ ... })] };
- 与上面相同,但使用 jQuery.param(..., true);
- 使用 IEnumerable 或 MyViewModel[] 而不是列表。
- 以上任意组合
我在这里做错了什么?
非常非常感谢您提前帮助我!
编辑
我的 (Razor)View 目前并不有趣,因为它与任何事情都无关。我没有使用任何 HTML.TextBoxFor(或类似)方法来填充 myEntries-Variable。它实际上是动态填充的(因为有很多很多条件)。为了这个问题(以及我自己的测试),我对变量进行了硬编码。:)