gpt4 book ai didi

jquery - 将复杂类型从 jquery 发布到 mvc

转载 作者:行者123 更新时间:2023-12-01 01:08:11 25 4
gpt4 key购买 nike

我有一个复杂的类型,如下所示:

    public class ReviewProcessLevelModel {
public int levelType;
public string user;
public string field;
public string[] dtFieldValues;
public string[] dtUsers;
}

我发布的字符串看起来像(在 JSON.stringify 函数之后):

     [
{"levelType":0,"user":"71","field":null,"dtFieldValues":null,"dtUsers":null},
{"levelType":1,"user":null,"field":"Dummy","dtFieldValues":null,"dtUsers":null}
]

我的 Controller 看起来像:

    [AcceptVerbs(HttpVerbs.Post)]
public ActionResult saveCampaign(IList<ReviewProcessLevelModel> ReviewProcess)

最后,这就是我将数据发送到 Controller 的方式:

    $.ajax({
type: "POST",
url: "@Url.Action("saveCampaign", "SaasAccessCertification")",
traditional: true,
contentType: 'application/json',
dataType: 'json',
data: getRPData() // returns the string above
}).done(function (resp) {
debugger;
}).error(function (resp) {
debugger;
});

该列表带有 2 个 ReviewProcessLevelModel,但对象始终为空。

请提供建议,感谢您抽出时间。

最佳答案

对,三个问题。

1 - Controller 的参数名称必须与您发布的对象的名称匹配,因此您的 json 字符串将变成:

'{"ReviewProcess": [{"levelType": 0,"user": "71","field": null,"dtFieldValues": null,"dtUsers": null},{"levelType": 1,"user": null,"field": "Dummy","dtFieldValues": null,"dtUsers": null}]}'

2 - 您应该将 contentType 指定为 post 上的选项:

contentType: 'application/json',

3 - 这可能听起来很疯狂,但你的属性必须有 getter 和 setter。

public class ReviewProcessLevelModel
{
public int levelType { get; set; }
public string user { get; set; }
public string field { get; set; }
public string[] dtFieldValues { get; set; }
public string[] dtUsers { get; set; }
}

我获取了您的代码,进行了这些更新,然后一切正常!

关于jquery - 将复杂类型从 jquery 发布到 mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com