0

我試圖發回一個簡單的錯誤消息爲JsonHTTP code404如何在ASP.NET中發回我自己的404錯誤消息,但作爲json?

所以我開始寫我自己的IExceptionFilter,檢查看看例外。爲了保持這個簡單,如果異常拋出類型爲ResourceNotFoundException,那麼我將代碼設置爲404。否則一切如果500。現在

,問題是..返回默認IIS7 404錯誤消息:(我的代碼被稱爲..但它似乎繞過它(後來在管線)...

有一些?招我需要做的

,我需要一個自定義的錯誤處理(在網絡配置)或東西被打開


編輯: 我試圖做的Twitter做什麼。他們的Http Response Code documentation顯示/解釋了他們的一些例子處理404的,等等。我想在我的MVC應用程序中做到這一點。

編輯2: 我已經做了代碼上市here,對於任何人的參考:)

+1

是真的發射JSON,你想做什麼?接收器讀取404狀態然後處理而不是內部更好?我的意思是,我很難看出什麼有意義的數據會進入客戶端不知道的404的JSON數據包。 – annakata

+0

Json或Xml。無論哪種方式,我需要發回一個404,消費者需要處理它。例如,這就是Twitter所做的。 –

回答

0

當你正在處理你的例外,你設置ExceptionHandled爲真?

這裏有一個簡單的例子...

HandleException(ActionExecutedContext filterContext) 
{ 
    Exception exception = filterContext.Exception; 

    //Check if our exception has been handled. 
    if (filterContext.ExceptionHandled == false) 
    { 
    //Do your exception stuff 
    filterContext.Result = YourExceptionMessageAsAnActionResult(); 
    //Set it as null. 
    filterContext.ExceptionHandled = true; 
    filterContext.HttpContext.Response.Clear(); 
    } 
} 
+0

是的,我相信。我還添加了我已完成的代碼的鏈接。你能檢查一下嗎? –

+0

我也回覆了該消息。看起來你的代碼中有一個小錯字,但我確信這只是問題代碼中的一個錯字,而不是你的類中的錯字。 –

+0

是的,這只是一個問題,因爲我減少了真正的berevity的邏輯。 *臉紅*。 –

相關問題