Jquery 无法使用json将大量数据推送到控制器

Jquery 无法使用json将大量数据推送到控制器,jquery,arrays,json,asp.net-mvc-4,Jquery,Arrays,Json,Asp.net Mvc 4,我有一个webgrid,有很多行,每行都有一个复选框。如果我选择10行,我可以将数据推送到 我的方法在控制器中,并更新数据库。一旦选定的行超过20行,则不会发生任何事情。我不能 进入我的方法。使用json是否有限制?你认为哪里不对 这是我的jquery代码 $('#MultipleAcctAssignSubmit').click(function () { var routeselected = $('#ddlroutes :sel

我有一个webgrid,有很多行,每行都有一个复选框。如果我选择10行,我可以将数据推送到 我的方法在控制器中,并更新数据库。一旦选定的行超过20行,则不会发生任何事情。我不能 进入我的方法。使用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);
                    });

                });
$('#multipleActAssignSubmit')。单击(函数(){
var routeselected=$('#ddlroutes:selected').val();
var repsselected=$('#ddlreps:selected').val();
var routeselectedText=$(“#ddlroutes:selected”).text();
var repsselectedText=$('#ddlreps:selected')。text();
var branchcode=$(“#ddlDropDownList选项:选中”).text();
var值=[];
$(“#容器网格输入[name=CatalogOrderId]:选中”)。每个(函数(){
行=$(此).tr;
如果(routeselected==“”){
//routeselected=$(行).find(“td div.RouteId”).text();
//routeselected=$(“.routeId”).val();
routeselected=0;
}
如果(重新选择==“”){
//repsselected=$(行).find(“td div.primrep”).text();
//repsselected=$(“.PrimaryRepId”).val();
重新选择=0;
}
值。推({
CatalogOrderId:$(行).find(“输入[name=CatalogOrderId]”).val(),
RouteId:routeselected,
Primaryrep:已重新选择,
Isvalidated:“已分配”
});
});
console.log(值);
如果(值。长度<1){
ShowDialogBox('行选择','未选择任何记录。请选择要分配的记录','确定','','GoToAssetList',null);
返回;
}
/*用收集到的值做一些事情*/
var things=JSON.stringify({'CatalogSelectedOrders':value});
$.get('@Url.Action(“SubmitCatalogOrders”,“Home”),{'values':things,'strBranchcode':branchcode},函数(结果){
$('#scrolltable').html(结果);
});
});
这是我在控制器中的方法

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

                }
public ActionResult SubmitCatalogOrders(字符串值、字符串strBranchcode)
{
Grabpartialviewdata objcatsubmit=新建Grabpartialviewdata();
string stripOutBranchName=string.Empty;
stripOutBranchName=strBranchcode.Substring(0,3);
字符串状态=string.Empty;
List cleanedData=null;
尝试
{
var stripOffObjectName=JObject.Parse(值)[“CatalogSelectedOrders”];
cleanedData=JsonConvert.DeserializeObject(stripOffObjectName.ToString());
状态=edmDataService.ProcessWriteAsignedRowsToDB(cleanedData,stripOutBranchName);
ViewData[“SelectList”]=HttpContext.Session[“SelectList”]??新建列表();
如果(状态=“成功”)
{
objcatsubmit=\u edmdaservice.GetPartialViewData(stripOutBranchName);
}
}
捕获(例外情况除外)
{
记录器错误(ex);
}
返回PartialView(“Edmcatorderdetails”,objcatsubmit);
}

您的代码正在使用
$.GET
方法进行GET调用。GET-call通过查询字符串发送数据,但有限制

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

$.post
方法进行此操作

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

我还看到您将所有内容作为单个字符串值发送。你不需要那样做。您可以发送javascript对象并使用视图模型作为参数,默认模型绑定器将能够将您发布的对象映射到视图模型对象属性。

您的代码正在使用
$.GET
方法进行GET调用。GET-call通过查询字符串发送数据,但有限制

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

$.post
方法进行此操作

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

我还看到您将所有内容作为单个字符串值发送。你不需要那样做。您可以发送一个javascript对象,并使用您的视图模型作为参数,默认的模型绑定器将能够将您发布的对象映射到视图模型对象属性。

我现在就尝试一下,然后再与您联系。谢谢。我现在就试试,然后再给你回复。谢谢