簡體   English   中英

MVC中的Ajax表單驗證

[英]Ajax form validation in MVC

我有一個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控制器ActionResult調用OnFailure ,當發生錯誤時:

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>

任何幫助都會很棒!

我有這個,

在IIS7中,默認錯誤設置僅在本地顯示詳細的錯誤消息。您的視圖將替換為狀態代碼的默認值。

如果要查看自定義錯誤,請將其添加到web.config中

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

應該排序它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM