ASP.NET MVC 5 + Web API – Form Post Handling

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;
   }