我有超过请求对象长度的大数组,所以我想在小数据帧中将数据发送到控制器,以便在扩展http请求对象限制时不会崩溃,并且数据将在一段时间后... ..
var param = "&table=" + table; //remove first three charactor 'btn' from id
param = param + "&tblheader=" + tblheader;
var request = $.ajax({
url: '../Reports/SendReport?'+param,//action method url which defined in controller
type: 'POST',
cache: false,
dataType: 'text',
contentType: 'application/text; charset=utf-8'
});
控制器:
[HttpPost]
public ActionResult SendReport(string table, string tblheader)
{
}
答案 0 :(得分:0)
我认为你的网址没有验证: 请检查此代码:
var param = { Table: table
Tblheader: tblheader }; //json data
var request = $.ajax({
url: '../Reports/SendReport'
data: param,
type: 'POST',
cache: false,
dataType: 'json',
contentType: 'application/text; charset=utf-8'
});
答案 1 :(得分:0)
创建Json对象并使用ajax
发送 var ajaxPostDatastr = '{"table":"' + table + '","tblheader":"'+tblheader+'" }';
var jsonData = JSON.parse(ajaxPostDatastr);
var request = $.ajax({
url: '../Reports/SendReport?'+param,//action method url which defined in controller
type: 'POST',
cache: false,
contentType: 'application/text; charset=utf-8',
data: jsonData});
在控制器中使用与您现在所做的相同。
希望这能解决您的问题
答案 2 :(得分:0)
您可以通过JSON发送大数据。但是你需要在web.config中增加json数据的最大长度。
参考帖子:Getting "The JSON request was too large to be deserialized"
答案 3 :(得分:0)
以上所有方式都可以发送数据但我们正在使用
var param = "&table=" + table; //remove first three charactor 'btn' from id
param = param + "&tblheader=" + tblheader;
var request = $.ajax({
url: '../Reports/SendReport?'+param,//action method url which defined in controller
type: 'POST',
cache: false,
dataType: 'text',
contentType: 'application/text; charset=utf-8'
});
然后我们将数据作为参数传递给$ .ajax然后它在param.length = 1600之后有一定的限制然后在$ .ajax无法执行之后
如果要发送大量数据,则必须使用View Model对象并在数据上分配此值,以便它可以轻松运行。 因为我使用的是Asp.net MVC,因为该视图模型与视图有很强的联系。所以我们可以分配。如果有更好的解决请分享