【问题标题】:Can we send data to controller till my array gets empty?我们可以将数据发送到控制器直到我的数组变空吗?
【发布时间】:2013-11-19 06:09:44
【问题描述】:

我有一个超过请求对象长度的大数组,所以我想以小数据帧向控制器发送数据,这样它就不会在扩展 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)
        {
          }

【问题讨论】:

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


    【解决方案1】:

    我认为您的网址未通过验证: 请检查此代码:

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

    【讨论】:

      【解决方案2】:

      创建 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});
      

      在控制器中使用与您现在所做的相同。

      希望这能解决您的问题

      【讨论】:

        【解决方案3】:

        您可以通过 JSON 发送大数据。但是需要在web.config中增加json数据的maxlength。

        参考帖子:Getting "The JSON request was too large to be deserialized"

        【讨论】:

          【解决方案4】:

          以上所有方式都可以发送数据,但是当我们使用时

             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 时,该视图模型与视图紧密结合。所以我们可以分配。如果没有更好的解决方案,请分享

          【讨论】:

            猜你喜欢
            • 2021-11-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-22
            • 1970-01-01
            • 2016-11-04
            • 2019-04-17
            • 1970-01-01
            相关资源
            最近更新 更多