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做了大量的工作,使我们的开发难度降低了,所需要的编码量也降低了,我们再也不需要自己动手序列化和反序列化,前提是你要知道有这样一个功能而已。