2012-11-25 76 views
1

我正在開發MVC3上的其餘API。
每當驗證出現問題時,我想拋出描述錯誤的500 + json(json可能是未驗證字段的列表)。
的問題是,在HTML裏面的JSON返回保存整個HttpExeptionServer Error in '/' Application.
如果我把filterContext.ExceptionHandled = true;消息出去乾淨,但客戶不能看到他身邊的500錯誤。 這種情況下:https://stackoverflow.com/a/4707762/936651實際上是html,並給客戶端提供乾淨的JSON,但也消除了500錯誤。使用JSON返回的MVC rest API狀態代碼500

+0

你看的MVC 4個Web API了嗎?如果你願意改變框架,我認爲有一個內置的方式來描述你所描述的內容。再加上一個更簡單的方法來構建一個API。 –

回答

1

您可以設置狀態碼500自定義錯誤處理程序中,你有seen here

filterContext.RequestContext.HttpContext.Response.StatusCode = 500; 

,並在客戶端上:

$.ajax({ 
    url: '/home/foo', 
    success: function (result) { 
     alert('success'); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     var json = $.parseJSON(jqXHR.responseText); 
     // TODO: do something with the json that was returned from the server 
    } 
}); 
+0

我不認爲你閱讀或理解我的整個帖子( - :你張貼我發佈的鏈接,請重新閱讀,如果你找到時間,謝謝隊友! – SexyMF

+0

你添加了'filterContext.RequestContext.HttpContext .Response.StatusCode = 500;'MyErrorHandlerAttribute'行顯示在我以前的帖子中?當你這樣做時發生了什麼?在我之前的文章中,這行不見了,所以錯誤處理程序從未在AJAX上命中並不奇怪請再次仔細閱讀我的答案。 –

+0

我的不好!下次喝啤酒時謝謝。 – SexyMF

相關問題