我有一个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");
}
为了在我的MVC控制器OnFailure
中调用ActionResult
,当发生错误时:
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return PartialView();
返回PartialView
,其中包含ViewBag
中的错误消息。这在本地运行时工作正常,错误消息被发送到showError
函数,然后错误被附加到页面。
问题在于,当我将应用程序放到实时服务器(IIS7)上时,Ajax上下文只是
错误请求
例如不是:
<p>You have not entered a valid date.</p>
<div style="display:none;">V7.0 </div>
任何帮助都会很棒!
答案 0 :(得分:2)
我有这个,
在IIS7中,默认错误设置仅在本地显示详细错误消息。您的视图将替换为状态代码的默认值。
如果您想查看自定义错误,请将其添加到您的web.config
中<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>
应该排序