我们可以将数据发送到控制器,直到我的阵列变空

时间:2013-11-19 06:09:44

标签: javascript .net jquery asp.net-mvc-4

我有超过请求对象长度的大数组,所以我想在小数据帧中将数据发送到控制器,以便在扩展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)
        {
          }

4 个答案:

答案 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,因为该视图模型与视图有很强的联系。所以我们可以分配。如果有更好的解决请分享