2010-02-17 59 views
0

我有一個分頁控件,通過一些JQuery Ajax刷新DIV,但是如果發生錯誤時發生錯誤,說明頁面崩潰,因爲它無法連接到數據庫或一些其他原因。我的默認錯誤頁面顯示在該DIV內而不是結果..JQuery中填充ASP.NET MVC錯誤頁面內容DIV

所以我的問題是你如何使它不會發生,當發生錯誤,它重新路由用戶到錯誤而不是僅僅使用錯誤頁面的內容刷新DIV?

更新:我只是做一個簡單的

$("#PagerContainer").load($(this).attr("href")); 

上的鏈接點擊事件處理程序。

我需要什麼做的是做全職重定向到錯誤頁面,而不是把內容到DIV

錯誤從Global.Aspx被困在的Application_Error

另一個更新 : 發生這種情況實際上並不是一個ajax後,它是一個正常的形式提交從一個模態...我會做什麼,在這種情況下。

回答

0

查看JQuery.ajax()的文檔,該文檔支持根據請求的狀態代碼做不同的事情。

然而,你可能需要做一些檢查在你的控制器行動AJAX調用過 - 有一個屬性(當然,actuallly一個返回boolean值法...)的Request對象上調用IsAjaxRequest()或東西,可以幫助你根據請求是否使用ajax做出不同的迴應。

+0

我只是做一個簡單的$(「#PagerContainer」)load($(this).attr(「href」)); – dswatik 2010-02-17 19:13:00

+0

是的。那麼''.load()'是調用'$ .ajax()'的一個快捷方式,它只能處理指定的成功結果。嘗試將其切換出來(如果錯誤頁面的狀態代碼不是200),或者使用控制器方法。 (這可能意味着你需要檢查你的錯誤處理中的Ajax調用......) – 2010-02-17 19:20:04

+0

我不太確定你是否捕捉到我的問題是什麼......問題是我需要使它成爲內容的DIV不會被我的錯誤頁面填充,而是基本上將瀏覽器重定向到錯誤頁面。 – dswatik 2010-02-17 19:31:57

1

,而不是你的代碼貼不喜歡

var theUrl = $(this).attr("href"); 

$.ajax({ 
    type: "GET", 
    url: theUrl, 
    success: function(data) { $("#PagerContainer").html(data); /*This will insert the HTML returned from the server */ }, 
    error: function(data) { alert('I encountered an error. I will NOT insert any HTML'); } 
}); 

東西彷彿從服務器(HTTP狀態200)收到了積極的迴應,你可能已經猜到,命名爲「成功」的功能將被調用。如果收到錯誤代碼,則會執行名爲'error'的函數。