2014-02-28 78 views
0

我有一个Ajax的形式,我需要打一个JavaScript函数上的失败,就像这样:Ajax表单验证在MVC

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控制器ActionResult,当发生错误:

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

它返回一个PartialViewViewBag中的错误消息。这在本地运行时工作正常,错误消息发送到showError函数,然后将错误附加到页面。

的问题是,当我把申请到一个活的服务器(IIS7),阿贾克斯方面只是

坏请求

和例子并不:

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

任何帮助将是伟大的!

回答

2

我有这个,

在IIS7默认错误设置,显示详细的错误消息只在本地,你的观点将被替换为默认的状态代码。

如果你想看到您的自定义错误,这添加到您的web.config

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

应该对其进行排序

+0

谢谢你,我不知道这件事!我曾尝试更改自定义错误设置,但没有奏效。 – tomsullivan1989