2016-05-31 62 views
0

我想在錯誤500頁上添加一個自定義的http頭,我想在控制器中做 - 我只是無法弄清楚。如何在異常上設置http標頭?

這是我曾嘗試:

public virtual void OnException(ExceptionContext filterContext) 
{ 
    if (filterContext.Exception is HttpException) 
    { 
     var statusCode = ((HttpException) filterContext.Exception).GetHttpCode(); 
     if (statusCode >= 500 && statusCode < 600) 
     { 
      filterContext.RequestContext.HttpContext.Response.AddHeader("Custom-Key", "error"); 
     } 
    } 
} 

Howevere,它不添加標題,所以一定出事了。

任何想法?

謝謝

回答

1

這是因爲你錯過了處理異常。我強烈建議你在try catch塊中這樣做(如果你這樣做,你將無法在OnException方法中發現這個異常)。

但是,只是爲了回答你的問題,你需要告訴上下文,這個異常處理。您需要以下行:

filterContext.ExceptionHandled = true; 

總數:

public virtual void OnException(ExceptionContext filterContext) 
{ 
    if (filterContext.Exception is HttpException) 
    { 
     var statusCode = ((HttpException)filterContext.Exception).GetHttpCode(); 
     if (statusCode >= 500 && statusCode < 600) 
     { 
      filterContext.RequestContext.HttpContext.Response.AddHeader("Custom-Key", "error"); 
      filterContext.ExceptionHandled = true; 
     } 
    } 
} 
+0

非常感謝呂斯泰姆! –

相關問題