2016-08-03 71 views
0

我有一个有很多行的webgrid,每行都有一个复选框。如果我选择10行,我可以将数据推送到控制器中的我的方法 并更新数据库。一旦选择的行数超过20,就没有任何反应。我不能 步入我的方法。我可以通过json传递一个限制吗?你认为什么是错的?无法将大量数据推送到控制器使用json

这里是我的jQuery代码

  $('#MultipleAcctAssignSubmit').click(function() { 

        var routeselected = $('#ddlroutes :selected').val(); 
        var repsselected = $('#ddlreps :selected').val(); 

        var routeselectedText = $('#ddlroutes :selected').text(); 
        var repsselectedText = $('#ddlreps :selected').text();    

        var branchcode = $("#ddlDropDownList option:selected").text(); 
        var values = []; 
        $("#container-grid input[name=CatalogOrderId]:checked").each(function() { 
         row = $(this).closest("tr"); 

         if (routeselected == "") { 
          //routeselected = $(row).find("td div.RouteId").text(); 
          //routeselected = $(".routeId").val(); 
          routeselected = 0;     
         } 

         if (repsselected == "") { 
          //repsselected = $(row).find("td div.primrep").text(); 
          //repsselected = $(".PrimaryRepId").val(); 
          repsselected = 0; 
         } 

         values.push({ 
          CatalogOrderId: $(row).find("input[name=CatalogOrderId]").val(), 
          RouteId: routeselected, 
          Primaryrep: repsselected, 
          Isvalidated: "Assigned" 
         }); 
        }); 
        console.log(values); 

        if (values.length < 1) { 
         ShowDialogBox('Selection of rows', 'No records have been selected. Please select the record(s) you wish to assign.', 'Ok', '', 'GoToAssetList', null); 
         return; 
        } 

        /* Do some stuff with the values collected */    
        var things = JSON.stringify({ 'CatalogSelectedOrders': values }); 

        $.get('@Url.Action("SubmitCatalogOrders", "Home")', { 'values': things, 'strBranchcode': branchcode }, function(result) { 
         $('#scrolltable').html(result); 
        }); 

       }); 

这是我在控制器

   public ActionResult SubmitCatalogOrders(string values, string strBranchcode) 
       { 
        Grabpartialviewdata objcatsubmit = new Grabpartialviewdata(); 
        string stripOutBranchName = string.Empty; 
        stripOutBranchName = strBranchcode.Substring(0, 3); 
        string status = string.Empty; 
        List<Catalogorder> cleanedData = null; 

        try 
        { 
         var stripOffObjectName = JObject.Parse(values)["CatalogSelectedOrders"]; 
         cleanedData = JsonConvert.DeserializeObject<List<Catalogorder>>(stripOffObjectName.ToString()); 
         status = _edmDataService.ProcessWriteAssingedRowsToDb(cleanedData, stripOutBranchName); 
         ViewData["SelectList"] = HttpContext.Session["SelectList"] ?? new List<Int64>(); 

         if (status == "success") 
         { 
          objcatsubmit = _edmDataService.GetPartialViewData(stripOutBranchName); 
         } 

        } 
        catch (Exception ex) 
        { 
         logger.Error(ex); 
        } 

        return PartialView("_Edmcatorderdetails", objcatsubmit); 

       } 

回答

2

您的代码正在使用$.get方法的GET调用方法。通过查询字符串获取调用发送数据并具有限制。

您应该考虑使用在请求正文中发送数据的POST调用。你可以使用jquery $.post方法。

var url="@Url.Action("SubmitCatalogOrders", "Home")"; 
$.post(url, { 'values': things, 'strBranchcode': branchcode }, function(result) { 
     $('#scrolltable').html(result); 
}); 

另外我看你是发送一切作为一个字符串值。你不需要那样做。您可以发送javascript对象并使用您的视图模型作为参数,默认模型联编程序将能够将发布的对象映射到您的视图模型对象属性。

+0

我现在就试试看,回复你。谢谢。 – user2320476

相关问题