Jquery 无法使用json将大量数据推送到控制器
我有一个webgrid,有很多行,每行都有一个复选框。如果我选择10行,我可以将数据推送到 我的方法在控制器中,并更新数据库。一旦选定的行超过20行,则不会发生任何事情。我不能 进入我的方法。使用json是否有限制?你认为哪里不对 这是我的jquery代码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
$('#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对象,并使用您的视图模型作为参数,默认的模型绑定器将能够将您发布的对象映射到视图模型对象属性。我现在就尝试一下,然后再与您联系。谢谢。我现在就试试,然后再给你回复。谢谢