我正在开发一个ASP.NET MVC应用程序,我需要将存储在sessionStorage中的数据发送到Controller。此存储具有键值对,其中键已“确认”。该值是一个带数字的数组,如[1,2,3,4,5]。
我需要将此数组发送到我的控制器,一切正常,除非此数组太长。我尝试用以下内容更改配置:
<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") });
}
请帮忙,我几乎尝试了所有的东西,有时它会起作用,但有时却没有。
谢谢。
答案 0 :(得分:0)
1.将数组加入字符串:
var str=seleccion .join(",");
2.只需将其传递给数据对象
data: { confirm: str}