2011-08-24 71 views
0

我已经完成了如何发布数据到MVC控制器/操作的研究,我遇到了一些麻烦。我要发布的数据(通过JavaScript),到我的MVC控制器,格式如下:发布复杂的数据到MVC控制器/操作

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

我的MVC行动具有以下特征:

[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不支持绑定一个简单的字符串数组吗?

+2

如果你对MVC 3,你应该尝试张贴的JSON从JS(包括stingify 'ing它) – RPM1984

+0

大声笑试图说,无济于事,除非我做错了......但是,谢谢 –

+0

没有probs,也许更新您的帖子与您使用的JS张贴到行动?所以我们可以看到流程的所有部分。 – RPM1984

回答

2

张贴到你的控制器动作

traditional: true 

我只是复制这个问题我的机器上,并且解决它时,您必须添加以下。我还发现this后这似乎已经包含在同一个解决方案

编辑

这里的another similar question ...

+0

绝对真棒 –

相关问题