0

在这里使用提琴手是发布的数据:

first.Id=1&first.Value=This+is+my+first+name.&second.Id=2&second.Value=The+second+one.

在控制器上:

[HttpPost]
public void Set(EditSettings[] settings)
{
   //the settings is always null
}

我在这里尝试了很多问题,但没有一个有效!

因为我只有两个设置,所以我设法分离参数并在我的 ajax 发布请求中使用 falttened 对象。

现在我的问题是应该将哪种类型的字符串而不是我的初始字符串传递给模型绑定器?由于没有“第一个”或“第二个”参数名称,应该在那里更改什么?

4

2 回答 2

1

您不能在控制器操作中使用数组访问这些值,因为它们没有使用索引发送。您可以执行以下操作以将数据作为数组发送

$.ajax({
 url="Url For Action",
data = { data[0].Id : "0" ,  data[0].Value : "This is my first name" , data[1].Id : "1" ,  data[1].Value : "This is my second one"};
});
public void Set([DataBind(Prefix="data")] EditSettings[] settings)
{

}
于 2012-12-09T16:02:45.130 回答
0

为什么发布查询字符串而不是 JSON。如果我是你,我会使用 JSON.stringify,它会是这样的:

var settings= new Array();
settings.push({ "id": "1", "value": "This+is+my+first+name." });

然后在您的 JQuery ajax 调用中执行以下操作:

$.ajax({
        url: 'You URL',
        type: 'POST',
        datatype: "json",
        traditional: true,
        data: { 
            settings: JSON.stringify(settings),          
        },
        success: function () { window.alert('success'); },
        error: function (event, request, settings) {  
            window.alert('AjaxError' + ' : ' + settings); },
        timeout: 20000
});
于 2012-12-09T23:15:51.383 回答