在Jquery Post中发布复杂列表

时间:2013-03-08 10:12:23

标签: jquery asp.net-mvc

我需要在我的jquery post方法中发布一个复杂的列表。这就是我正在做的事情

function UpdateOrder() {
    var results = new Array();
    $("#divMainContainer").find(".teamTr").each(function() {
        var o = { 'projectid': $(this).attr("projectid"),
                  'designTeamID': $(this).attr("designTeamID"), 
                  'designTeamOrder': $(this).attr("designTeamOrder") 
                };
        results.push(o);
    });

    var url = "/DesignManagerQueue/UpdateOrder";
    $.post(url, { queryArr: results}, function(data) {
    });

MVC Action是

public JsonResult UpdateOrder(List<SS> queryArr)
{
    //Do something
    return Json(new { Status = true, Message = "" });
}

而班级是

public class SS
{
    public string Projectid{ get; set; }
    public int DesignTeamID{ get; set; }
    public int DesignTeamOrder { get; set; }
}

但是在行动中

List<SS> queryArr 

为空

任何想法?

2 个答案:

答案 0 :(得分:0)

你的js对象属性应该与你的模型类匹配

public class SS
{
    public string Projectid{ get; set; }
    public int DesignTeamID{ get; set; }
    public int DesignTeamOrder { get; set; }
}

  var o = { 'ProjectId': $(this).attr("projectid"),
                  'DesignTeamID': $(this).attr("designTeamID"), 
                  'DesignTeamOrder': $(this).attr("designTeamOrder") 
                };

答案 1 :(得分:0)

ASP.NET MVC框架中的模型绑定很简单。您的操作方法需要数据,传入的HTTP请求包含您需要的数据。问题在于数据嵌入到POST格式的值中,可能还有URL本身。 Model Binding in MVC

模型绑定要求您的属性应与模型类匹配。

 var o = { 'ProjectId': $(this).attr("projectid"),
                  'DesignTeamID': $(this).attr("designTeamID"), 
                  'DesignTeamOrder': $(this).attr("designTeamOrder") 
                };