向控制器提交具有复杂数据类型的表单

本文关键字:复杂数据类型 表单 控制器 提交 | 更新日期: 2023-09-27 18:06:54

这是我的模型

模型
public class XPersonContent
{
    public string PersonType { get; set; }
    public int PersonId { get; set; }
}
public class XViewModel
{
    public List<XPersonContent> XPersonList { get; set; }
    public string XContent { get; set; }
    public sbyte CommentEnabled { get; set; }
}
控制器

[HttpPost]
public JsonResult AddXViewModel ( XViewModel testModel)
{
}

使用MVC提交给控制器的表单

function submitForm() {
    var xpersonContent=[Object { Id=2934109,  Type="us"}, Object { Id=2913974,  Type="us"}, Object {Id=2912159,  Type="us"}]
    var xContent= "test";
    var CommentEnabled= false;
    var dataString = {
        XPersonList:xpersonContent,
        XContent: xContent,
        CommentEnabled: true
    };
    $.ajax({
        type: "POST",
        url: "/AjaxPostDemo/AddXViewModel",
        data: JSON.stringify(dataString ),
        cache: false,
        dataType: "json",
        success: function (data) {
            $("#ajaxPostMessage").empty();
            $("#ajaxPostMessage").html(data.Message + " : " + data.Date);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        }
    });
}
> Question

我如何构建对象XViewModel传递回控制器。我有三个不同的变量我试过这么做dataString = {XPersonList: xpersonContent,XContent: XContent,CommentEnabled:真};

向控制器提交具有复杂数据类型的表单

我不得不补充contentType:"application/json;charset = utf - 8",在ajax请求中SMH

尝试更改

var xpersonContent=[{"XPersonContent": {"Id": 2934109, "Type": "us"}}, {"XPersonContent": {"Id": 2913974, "Type": "us"}}, {"XPersonContent": {"Id": 2912159, "Type": "us"}}]