2016-08-03 74 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

相關問題