【发布时间】:2015-09-22 07:24:48
【问题描述】:
ASP.NET MVC4 || C#
我有一个 MenuRole 页面,它显示数据库中的菜单列表。用户必须从页面中选择一个角色和相应的菜单。一切顺利,但是当我尝试保存数据时,我收到以下错误。
'The request filtering module is configured to deny a request where the query string is too long'.I 使用 jquery ajax 保存细节,我发现参数作为查询字符串从视图传递到控制器,我认为这不是理想的情况。
这是在表单中使用jquery ajax时传递数据的默认行为吗?
如何解决这个问题?
错误信息
请求的网址
用于保存详细信息的 JQuery ajax
$("#btnSubmit").click(function () {
var formData = $('#frmRoles').serialize();
$.ajax({
type: "POST",
url: "@Url.Action("Add","MenuSettings")",
data: formData,
datatype: "json",
success: function (data) {
toastr.success(data.message)
},
error: function (data) {
toastr.error(data.message);
}
});
})
【问题讨论】:
-
你有没有标有
[HttpPost]的方法Add? -
@StephenMuecke 感谢您的输入。我用 httppost 装饰了 add 方法,但忘记用 post 方法装饰 Html 表单
-
您不需要装饰表单 - 默认情况下是
FormMethod.Post。而且我怀疑如果发生这种情况,您还必须同时进行标准提交和 ajax 发布 -$("#btnSubmit")是提交按钮吗? - 如果是这样,添加return false;作为脚本的最后一行以取消默认
标签: jquery ajax asp.net-mvc-4 query-string