0

我想使用请求 ajax 将所有数据放入一个对象中。

这些数据通过功能进入我的控制器。在我的数据标题中,我有以下信息:

我有 4 个对象 allPly 创建,但所有数据(gramme、乳液和其他)都等于 null 或零。但是数据评论和OtherData没关系,这行得通。

谢谢你的帮助

我的请求:

var params={};
var allStep21 ={allData..}
$.extend(params,allStep21);
 $.ajax({
    type: "POST",
    url: "Request",
    data: params,
});

在标题 html 中:

allPly[0][Gramme]:10
allPly[0][Toto]:White
allPly[0][Test]:None
allPly[0][Lotion]:1
allPly[1][Grammage]:11
allPly[1][Toto]:White
allPly[1][Test]:Fine
allPly[1][Lotion]:0
OtherData : 585
Comment: all it's ok

在我的控制器中:

[HttpPost]
public ActionResult Request(AllStep21 allStep21)
{
}

在我的模型中:

public class AllStep21
{
    public String OtherData { get; set; }
    public String Comment { get; set; }
    public List<allPly> allPly { get; set; }
}
public class allPly
{
    public int Gramme { get; set; }
    public String Toto { get; set; }
    public String Test { get; set; }
    public int Lotion { get; set; }
}
4

2 回答 2

1

您可以使用 JSON 请求,该请求允许您将任意复杂对象发送到控制器操作:

var params = { 
    allStep21: { 
        comment: 'some comment', 
        otherData: 'some other data',
        allPly: [
            { toto: 'toto 1', test: 'test 1', lotion: 1, gramme: 1 },
            { toto: 'toto 2', test: 'test 2', lotion: 2, gramme: 2 }
        ]
    } 
};

$.ajax({
    url: 'Request',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify(params),
    success: function(result) {
        alert('successs');
    }
});

此处显示的JSON.stringify方法本机内置于所有现代浏览器中。但是如果您需要支持旧版浏览器,则需要包含json2.js脚本。

于 2012-05-11T05:57:30.823 回答
-1

您需要的是实现自己的模型绑定器。看看这些链接:

http://odetocode.com/blogs/scott/archive/2009/05/05/iterating-on-an-asp-net-mvc-model-binder.aspx http://buildstarted.com/2010/09/12 /custom-model-binders-in-mvc-3-with-imodelbinder/

我希望它有所帮助。

于 2012-05-10T21:55:13.933 回答