搞了老半天,為了接JavaScript的Json格式,轉成Server端(C#)的Dictionary集合會有問題, List集合好像沒問題,先用這個方式解決,此範例模疑一個Model裡有這2種集合傳遞。
JQuery:
$(function () { $("#send").click(function () { $.ajax({ type: "POST", url: '@Url.Action("Index")', data: JSON.stringify(GetData()), contentType: "application/json; charset=utf-8", success: function (result) { alert(result.d); }, error: function (result) { alert("Error:" + result.toString()); } }); }); function GetData() { var array = new Array(); var wdata = { Name: "Cool", Comment: "酷" }; array.push(wdata); var Idata = { "p1": "pic1.jpg", "p2": "pic2.png" }; var data = { ID: "1", Name: "Jimmy", ImageString: JSON.stringify(Idata), Words: array }; return data; }; });
MVC Controller接值:
[HttpPost] public ActionResult Index(Articles article) { //方法1-使用JavaScriptSerializer物件,進行反序列化 var ser = new JavaScriptSerializer(); article.Images = ser.Deserialize>(article.ImageString); //方法2-使用Json.NET進行反序列化 article.Images = JsonConvert.DeserializeObject>(article.ImageString); return new EmptyResult(); }
MVC Models定義:
public class Articles { public int ID { get; set; } public string Name { get; set; } public Dictionary<string, string> Images { get; set; } public string ImageString { get; set; } public List<Word> Words { get; set; } } //==================================================================// public class Word { public string Name { get; set; } public string Comment { get; set; } }
文章標籤
全站熱搜
留言列表