将复杂数据发布到MVC控制器/操作

时间:2011-08-24 23:32:22

标签: asp.net asp.net-mvc

我已经研究过如何将数据发布到MVC控制器/操作,我遇到了一些麻烦。我希望以这种格式将数据(通过javascript)发布到我的MVC控制器:

{
  someString: "thisString",
  myArray: ["string1", "string2"]
}

我的MVC Action有以下签名:

[HttpPost]
public ActionResult someAction(FormCollection formValues);

如果我检查formValues的值,我会看到键/值对:

key: "someString"
value: "thisString"

key: "myArray[]"
value: [0]: "string1", [1]: "string2"

这一切看起来都不错,直到我尝试:

TryUpdateModel(MyCustomModel);

键/值对someString /“thisString”绑定完美但数组(myArray)解析为null。

我的模型看起来像这样:

public MyCustomModel 
{
    public string someString {get; set;}
    public string [] myArray {get; set;}
}

以下是我的帖子的样子(jQuery):

$.post
(
    "Controller/someAction",
    {
        someString: "thisString",
        myArray: ["string1", "string2"],
    },
    function(data) { ...do something }
); 

我到底在做什么?默认的MVC ModelBinder不支持绑定一个简单的字符串数组吗?

1 个答案:

答案 0 :(得分:2)

发布到控制器操作时必须添加以下内容

traditional: true

我刚刚在我的机器上复制了这个问题并解决了它。我还发现this帖子似乎包含了相同的解决方案

修改

这是another similar question ...