2016-05-05 81 views
2

我正在開發一個ASP.NET MVC應用程序,其中我需要將存儲在sessionStorage中的數據發送到Controller。該存儲器具有鍵值對,其中密鑰是「確認的」。該值是一個包含數字的數組,如[1,2,3,4,5]。使用ajax發送大字符串到控制器

我需要發送這個數組到我的控制器,並且一切正常,除非這個數組太長。我試着改變配置有:

<appSettings> 
    <add key="aspnet:MaxJsonDeserializerMembers" value="1000000" /> 
</appSettings> 

<system.web.extensions> 
    <scripting> 
     <webServices>             
      <jsonSerialization maxJsonLength="1000000" />     
     </webServices> 
    </scripting> 
</system.web.extensions> 

,但似乎沒有任何工作。只有當數組不長時才能正常工作。 這裏是我的代碼:

腳本:

$(".enviar").click(function() { 
     getSelectedItems(); 

     var seleccion = sessionStorage.confirmed; 

     $.ajax({ 
      url: "/Controller/Action", 
      type: "POST", 
      //data: { confirm: JSON.stringify(seleccion) }, 
      data: JSON.stringify({ confirm: seleccion }), 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      success: function (returndata) { 
       window.location = "@Url.Action("SomeAction","Controller")"; 
      }, 
      error: function (returndata) { 
       window.location.href = "@Url.Action("AnotherAction","Controller")"; 
      } 
     }); 

     //sessionStorage.clear(); 
    }); 

控制器:

[HttpPost] 
    public ActionResult Action(string confirm) 
    { 
     if (!String.IsNullOrEmpty(confirm)) 
     { 
      confirm = confirm.Substring(1, confirm.Length - 2); 
      var confirmadas = confirm.Split(','); 

      foreach (var id in confirmadas) 
      { 
       //change things in DB 
      } 

      return Json(new { ok = true, newurl = Url.Action("SomeAction", "Controller") }); 

     } 
     return Json(new { ok = false, newurl = Url.Action("SomeAction", "Controller") }); 
    } 

請幫幫忙,我已經試過幾乎所有和它的作品的時候,但是其他時候它不「T。

謝謝。

回答

0

陣列爲字符串1.join:

var str=seleccion .join(","); 

2.just它傳遞給數據對象

data: { confirm: str} 
相關問題