在測試期間(至少)我們記錄每個控制器/操作的一些底層信息。所有的控制器都來自我們自定義的BaseController,它覆蓋了OnActionExecuting來完成日誌記錄。MVC自定義操作屬性
我們在BaseController中有一個屬性,用於確定是否發生此日誌記錄,以便控制器可以重寫OnActionExecuting本身,重置該標誌,然後調用「base.OnActionExecuting」。例如,該標誌通常是正確的,但我們希望將其關閉以用於某些Json請求。
我們寧願做的是創建一個自定義的控制器/動作過濾器來處理,這樣的事情:
[LogPageAccess(false)]
[HttpGet]
Public ActionResult Foobar()
我敢肯定有辦法做到這一點,但我沒有已經能夠弄清楚如何創建自定義屬性並讓它重置BaseController中的標誌。
謝謝...
在項目中,我使用
需要類似的東西,這讓我需要去的地方。但是,我使用'filterContext.Result = new HttpUnauthorizedResult();'而不是拋出'UnauthorizedAccessException',這讓我覺得更適合MVC頁面。您可以查看[UnauthorizedAccessException]的MSDN文檔(http://msdn.microsoft.com/en-us/library/system.unauthorizedaccessexception.aspx)以瞭解爲什麼我不覺得它適合這種情況。 –