尝试使用 jquery ajax 保存数据时出现查询字符串错误?

Query String error when trying to save the data using jquery ajax?

ASP.NET MVC4 || C#

我有一个 MenuRole 页面,它显示来自 database.Users 的菜单列表必须 select 来自 page.All 的角色和相应的菜单运行良好,但是当我尝试保存时我收到以下错误的数据。 'The request filtering module is configured to deny a request where the query string is too long'。我使用 jquery ajax 来保存细节,我发现参数作为查询字符串从视图传递到控制器,我认为这不是一个理想的场景。

这是在表单中使用 jquery ajax 时传递数据的默认行为吗?

如何解决这个问题?

错误信息

请求URL

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

查询字符串表示您进行了 GET 调用(并且超出了查询字符串限制)。假设您的按钮是一个提交按钮,那么您同时进行了正常提交(表单方法必须是 FormMethod.Get)和 ajax post.

要防止默认提交,请将 return false; 添加到脚本末尾

$("#btnSubmit").click(function () {
    var formData = $('#frmRoles').serialize();
    $.ajax({
        ....
    });
    return false; // add this
})