asp.net mvc用jquery向action提交json列表数据

asp.net mvc用jquery向action提交json列表数据

场景:想把前台页面的可变列表的内容传递给controller的action

适用:asp.net mvc3

方案:

前台js:

var items = new Array();
  $("#tbPrizesData").find("tr").each(function () {//遍历可变数据
  var sortnumData = $(this).find("span[id='sort']").text();
  var prizeNameData=$(this).find("span[id='prizeName']").text();
  var obj = { "Sort": sortnumData, "Name": prizeNameData };
  items.push(obj);
});

var request = {
startDate: "",//要传递的其他参数
endDate: "",//要传递的其他参数
remark: "", //要传递的其他参数
prizesData: items//要传递的列表
}

$.ajax({
  url: '@Url.Content("~/TurntableActivity/ActivityCreate")',
  type: "POST",
  data: JSON.stringify(request),//转换成json数据
  dataType: "json",
  contentType: "application/json; charset=utf-8",
  error: function (XMLHttpRequest, textStatus, errorThrown) {
    $.messager.alert("提示信息", "异常!" + textStatus, "error");
    return;
  },
  success: function (data) {

  }

});

 

后台controller的action代码:

[HttpPost]
public JsonResult ActivityCreate(string startDate, string endDate, string remark, ActivityPrize[] prizesData)//以数组形式直接接收数据
{

}

 

ActivityPrize.cs 类:

public class ActivityPrize
{
  public string Name { get; set; }//注意必须有get;set;方法

  public string Sort { get; set; }//注意必须有get;set;方法
}

 

总结:由于微软为asp.net mvc3做了大量的工作,使我们的开发难度降低了,所需要的编码量也降低了,我们再也不需要自己动手序列化和反序列化,前提是你要知道有这样一个功能而已。

 

posted @ 2013-10-15 11:44  蒼狼醉  阅读(263)  评论(0)    收藏  举报