javascript - MVC 中的 Ajax 表单验证

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

我有一个 Ajax 表单,需要在失败时调用 JavaScript 函数,如下所示:

using (Ajax.BeginForm("UpdateStages", new AjaxOptions
{
    HttpMethod = "POST",
    OnSuccess = "refreshSearchResults('" + @Model.First().ItemCode + "')",
    OnFailure = "showError"
}))

使用 showError 函数获取 Ajax 上下文响应并将其附加到 div,如下所示:

function showError(ajaxContext) 
{
    var response = ajaxContext.responseText;
    response = $($.trim(response));
    var itemVersion = response.filter("div")[0].innerHTML.trim().toString();
    var error = response.filter("p")[0].outerHTML.toString();
    $("#" + itemVersion.replace(".", "") + "-UpdateStagesResults").empty();
    $(error).appendTo("#" + itemVersion.replace(".", "") + "-UpdateStagesResults");
}

为了在发生错误时调用 OnFailure,我在 MVC Controller ActionResult 中调用:

Response.StatusCode = (int)HttpStatusCode.BadRequest;
return PartialView();

它返回一个PartialView,并在ViewBag中包含错误消息。这在本地运行时工作正常,错误消息被发送到 showError 函数,然后错误被附加到页面。

问题是,当我将应用程序放到实时服务器(IIS7)上时,Ajax 上下文只是

Bad Request

例如不是:

<p>You have not entered a valid date.</p>
<div style="display:none;">V7.0  </div>

任何帮助都会很棒!

最佳答案

我已经有这个了,

在 IIS7 中,默认错误设置仅在本地显示详细错误消息。您的 View 将替换为状态代码的默认值。

如果您想查看自定义错误,请将其添加到您的 web.config 中

<system.webServer>
    <httpErrors errorMode="Detailed" />
</system.webServer>

应该对它进行排序

关于javascript - MVC 中的 Ajax 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22094422/

相关文章:

javascript - 使用我的脚本从 XML 获取属性

javascript - 在 C# 后面的代码上激活 javascript 字符串加载

javascript - 如何使用 svg 矩阵函数通过正确的变换数学缩放 svg

javascript - 如何将 watch 添加到 gulp 中的文件夹中

javascript - 从文本框 jquery/javascript 数组中获取单个文本框值

javascript - 发送多个内容类型 Ajax

javascript - 使用javascript从字符串中删除字符

javascript - 在 .on() 和 .off() 方法之间切换

javascript - youtube search api - 数据太多,我可以限制 api 返回的节点吗?

jquery - Rails 使用 jQuery/AJAX 自动保存表单