ASP.NET: post multiple variable from view to controller through ajax jquery function -


i working on app using asp.net mvc 5. have partial view create new record scheme. partial view displays zones in table user can select single or multiple suppose assign newly created record

in razor html.beginform have add id , using id calling ajax function send serialize form controller. problem want send selected zones list ids stored in array controller along submitted form values can update related record in database. array declare global variable in javascript...

script

<script type="text/javascript">  $(document).ready(function () {      $("#newfeeschemeform").submit(function (e) {                     $.ajax({             type: "post",             url: "/qualification/createnewfeescheme",             data: { newschemedata: $("#newfeeschemeform").serialize(), feezonelist: selectedzoneslist },             success: function(data)             {                 alert(data);             },             error: function (jqxhr, textstatus, errorthrown) {             }         });          e.preventdefault(); //stop default action     }); }); </script> 

script2

<script type="text/javascript">  var selectedzoneslist = new array();   function addfeezonetoscheme(e) {      var entitygrid = $("#feezonegrid_02").data("kendogrid");      var selectedzone = entitygrid.dataitem(entitygrid.select());      selectedzone = selectedzone.feezoneid;      selectedzoneslist.push(selectedzone);  }  </script> 

controller class

  [httpget]     public actionresult createnewfeescheme()     {          return partialview("partial_feescheme",new feescheme());     }      [httppost]     public actionresult createnewfeescheme(feescheme newschemedata, array selectedzoneslist)     {          var a1 = selectedzoneslist;          try         {             if (modelstate.isvalid)             {                 feescheme_uof.createfeescheme(newschemedata);             }         }         catch (dataexception ex)         {             modelstate.addmodelerror("", "unable create new feescheme!" + ex);         }          return redirecttoaction("feescheme");     } 

razor form (to submitted)

@using (html.beginform("createnewfeescheme", "qualification", formmethod.post, new { id = "newfeeschemeform" })) {   @html.antiforgerytoken()   @html.validationsummary(true)   //rest of code take user input variables ..    <input type="submit" value="create" class="btn btn-default" /> } 

zone table in kendo grid

@(html.kendo().grid<databaselayer.tablemappings.feezone>()         .name("feezonegrid_02")         .columns(columns =>           {            columns.bound(c => c.feezoneid);            columns.bound(c => c.feezonedescription);            columns.command(             command =>                {                  command.custom("add fee-scheme").senddatakeys(true).click("addfeezonetoscheme").htmlattributes(new { @class = "addfeezonetoscheme_button" });                }               );             })            .datasource(datasource => datasource                 .ajax()                 .read(read => read.action("getallfreezone", "qualification"))                 .model(model => model.id(c => c.feezoneid))            ) 

instead of this

public actionresult createnewfeescheme(feescheme newschemedata, array selectedzoneslist) 

try this

public actionresult createnewfeescheme(feescheme newschemedata, ienumerable<databaselayer.tablemappings.feezone> selectedzoneslist) 

update:

you can put selected zones in form field serialize others.

add form:

<input id="zones" type="hidden"> 

and before ajax call:

$("#zones").val(selectedzoneslist).join(); 

Comments

Popular posts from this blog

python - Subclassed QStyledItemDelegate ignores Stylesheet -

java - HttpClient 3.1 Connection pooling vs HttpClient 4.3.2 -

SQL: Divide the sum of values in one table with the count of rows in another -