2011-10-25 38 views
0

我試圖在每個網頁的頁面請求上設置一個Http Header。爲此,添加標頭(Response.AppendHeader(「p3p」,「{HeaderInfoHere}」))的代碼放置在基本控制器的OnActionExecuted覆蓋中(所以無論何時調用任何操作都會調用它)。在基礎控制器中設置Http Headers?

問題在於,無論何時調用操作(我們所有其他控制器都從基本控制器繼承),都會附加頭文件,頭文件會一遍又一遍地重複添加,具體取決於其他操作的多少(部分視圖等。 )被稱爲初始請求的一部分。

我無法查詢Response對象的Headers集合 - 由於在我們的服務器上禁用了IIS集成管道模式(我無法更改),因此我無法直接檢查此標頭是否具有PlatformNotSupported異常已被添加。

任何人都可以提出一個更好的方法來追加一個頭(一次)到MVC的GET請求或解決此方案?

+0

是訪問創建一個HttpModule? –

+0

我不認爲你可以在模塊中添加一個頭,而不是集成模式。我認爲。我的記憶是模糊的:) –

+0

我可以添加它們看起來好像 - 只是沒有閱讀代碼中的Headers集合:S –

回答

0

將數據添加到您的ControllerContext(可能在RouteData中),注意到您的代碼'我已經添加了該頭',您在添加它之前檢查它。您也可以嘗試使用Session(和任何扼流圈前 - TempData的已經在使用它)

會議通過controllerContext.HttpContext.Session

相關問題