ASP.NET MVC 5 + Web API – Form Post Handling
Client Side – JavaScript |
$(document).ready(function () { $("… …").click(function () { FormPost("… …"); }); }); function HttpRequestResult(data) { … … } function FormPost(url) { $.ajax({ type: "POST", url: url, data: GetFormItem(".form input, .form select"), cache: false, datatype: "application/json" }).success(function (data) { HttpRequestResult(data); }); } function GetFormItem(ctl) { var formpostenv = new Object(); var itemcoll = []; var item = null; $(ctl).each(function () { item = new Object(); item.name = $(this).attr("name"); item.val = $(this).val(); itemcoll.push(item); }); formpostenv.val = itemcoll; return formpostenv; } |
Web API – Server Side |
using Newtonsoft.Json.Linq; public async Task<JObject> Post(JObject obj) { //NameValueCollection results = await Request.Content.ReadAsFormDataAsync(); Dictionary<string, Object> list = getFormPostItem(obj); … … return obj; } public Dictionary<string, Object> getFormPostItem(JObject obj) { Dictionary<string, Object> dict = new Dictionary<string, object>(); JArray ary = (obj.GetValue("val") as JArray != null) ? obj.GetValue("val") as JArray : new JArray(); foreach(var item in ary) { dict.Add((item as JObject).GetValue("name").ToString(), (item as JObject).GetValue("val")); } return dict; } |