2012-09-13 16 views
1

我創建了我的控制器的動作將從jQuery的Ajax的方法可用於驗證用戶登錄信息。 如何配置我的動作拋出由$就錯誤處理程序檢測到錯誤?如何使MVC行動返回一個HTTP錯誤時驗證不成功

我正在使用以下代碼來引發錯誤,但未被$ .Ajax檢測到。

throw new HttpException(401, "message"); 

這裏是我的JS代碼:

$.ajax({ 
     url: $('#signin_submit').data('url'), 
     data: params, 
     type: "POST", 
     success: function (aData, aTextStatus, aJqXHR) { Signin.success(aData, aTextStatus, aJqXHR); }, 
     error: function (aJqXHR, aTextStatus, anErrorThrown) { Signin.error(aJqXHR, aTextStatus, anErrorThrown); } 
    }) 
+0

這可能是一個想法:如果請求沒有返回數據(或返回錯誤),則可以使用window.location.href ='redirect url'。這可以幫助你:http://stackoverflow.com/questions/2927044/redirect-on-ajax-jquery-call – 2012-09-13 12:32:39

+0

這不會爲我工作,我必須顯示錯誤消息,而不是重定向到一個錯誤頁面。 –

回答

0

如果你在你的應用程序安裝窗體身份驗證你不能輕易地從應用程序拋出錯誤。該框架將響應這些狀態碼和表現不同。

有一些方法可以像創建自定義http模塊一樣來解決這個問題,如post中所述。