我的問題是OnFailure回調被調用的條件是什麼,運行時如何知道ajax調用失敗(ajax幫助器使用一些http響應狀態代碼來指示那?那會是什麼?)。 如果UpdateTargetId的html無論ajax調用失敗還是成功更新,那麼我應該如何正確處理錯誤。很迷茫......ASP.NET MVC3 AJAX.BeginForm AjaxOptions OnSuccess OnFailure問題
13
A
回答
18
<script type="text/javascript">
function OnSuccess() {
alert('Success');
}
function OnFailure(ajaxContext) {
var response = ajaxContext.get_response();
var statusCode = response.get_statusCode();
alert('Failure');
Here you can do whatever you want with the div.
$('#targetDiv').empty();
}
</script>
<div id="targetDiv">
@using (Ajax.BeginForm("Index", "Home",
new AjaxOptions
{
UpdateTargetId = "targetDiv",
OnSuccess ="OnSuccess",
OnFailure ="OnFailure"
})
{
...
}
</div>
0
onFailure處的AjaxOptions尋找一個JavaScript函數
<script>
function onError(ajaxContext) {
var response = ajaxContext.get_response();
var statusCode = response.get_statusCode();
alert("Error occured. Status code = " + statusCode);
}
</script>
在HTML寫的,當錯誤出現此得到警報。
<div id="updateDiv">
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "updateDiv", OnFailure = "onError" }))
{
@*Your HTML form code goes here.*@
}
</div>
3
根據官方的MSDN網站:如果響應狀態不在200系列 調用此函數。
4
看來,在ASP.NET MVC 4種情況發生了變化不大。我不得不使用以下屬性來讀取響應和狀態:
ajaxContext.responseJSON
ajaxContext.responseText
ajaxContext.status
ajaxContext.statusText
相關問題
- 1. ASP.NET MVC4 AJAX.BeginForm AjaxOptions OnSuccess不叫
- 2. 如何使用Ajax.BeginForm OnSuccess和OnFailure方法?
- 3. Ajax.BeginForm及其方法onFailure和onSuccess
- 4. Ajax.BeginForm(new AjaxOptions {})異常
- 5. ASP.NET - Ajax.BeginForm OnSuccess回調參數
- 6. Ajax.BeginForm onFailure處調用與響應,不AjaxContext
- 7. MVC3 Ajax.BeginForm的onSuccess無法在Firefox運行
- 8. 如何僅在MVC3中的Ajax.BeginForm OnFailure中顯示錯誤消息?
- 9. MVC 3 Razor - Ajax.BeginForm OnSuccess
- 10. 當ModelState爲InValid時調用Ajax.BeginForm OnFailure
- 11. Ajax.BeginForm不調用的onSuccess
- 12. 如何處理Ajax.BeginForm()OnError OnFailure回調?
- 13. 正確處理Ajax.BeginForm OnSuccess
- 14. asyncHttpClient no onSuccess或onFailure運行
- 15. ASP.NET MVC AjaxForm onFailure - 如何顯示錯誤?
- 16. JSON onFailure問題
- 17. AjaxOptions OnSuccess回調參數不起作用
- 18. 問題與Ajax.ActionLink AjaxOptions回調(ASP.NET MVC 3)
- 19. ASP.NET MVC3和AJAX問題
- 20. MVC Razor Ajax.BeginForm OnSuccess中的更新元素
- 21. MVC3 - Razor,Ajax.BeginForm - 客戶端 - OnBegin
- 22. OnFailure/OnSuccess不會在Ajax表單上調用提交
- 23. 即使數據不好,Ajax.BeginForm也會觸發OnSuccess方法
- 24. MVC Ajax.BeginForm的onSuccess函數沒有定義
- 25. 如何添加onSuccess和onFailure getJSON()?
- 26. akka future onsuccess onfailure都沒有執行
- 27. uploadify + asp.net-mvc3問題
- 28. 問題在asp.net MVC3
- 29. 需要上傳控件在ajax.beginform使用asp.net mvc3 html5剃鬚刀
- 30. Ajax.BeginForm刷新部分..?
謝謝,這很有用,但我仍然想知道它是如何知道調用失敗的...我應該在控制器中寫些什麼... – Rn2dy
如果錯誤是一個業務錯誤,例如重複名稱,你需要發送一個將被OnSuccess()接受的錯誤代碼,如果錯誤超出了你的控制範圍,它將被OnError捕獲。 –
@MangeshPimpalkar如果錯誤是「超出你的控制範圍」,並且你在web.config中打開了customerrors,那麼OnFailure將永遠不會被調用。 – gangelo