不必記住使用ChildActionOnly
屬性修飾一堆操作方法,而是可以方便地指定整個控制器中的所有方法。制定控制器的所有操作方法ChildActionOnly
試圖將ChildActionOnly
屬性放在控制器類上不起作用(至少在我的代碼上下文中),因爲在控制器的依賴項注入期間(在請求管道的早期階段發生),沒有HttpContext或請求對象,並拋出錯誤「請求在此上下文中不可用」。
我可以創建一個RouteConstraint
,使路由本身執行ChildActionOnly
?這似乎有疑問,因爲相同的請求管道問題 - 我不知道HttpContext在執行RouteConstraints期間是否可用。如果你有想法如何實現這一點,請分享。
也許創建一個使用反射來識別特定控制器的所有操作方法,並確保他們有ChildActionOnly
屬性設置的單元測試...
如何做到這一點?你可以給一些入門代碼(不需要打磨或者甚至可以工作,只需要一個起點就可以)。
感謝您的建議。由於我不是MVC的專家,你能否給出更多關於如何使用過濾器的細節 - 如果僅僅是爲了下一個發現這個問題的人的完整性? – ErikE 2014-10-02 06:11:01
我更新了答案 – 2014-10-02 14:01:28
希望這可以幫助你實現你的目標 – 2014-10-02 14:07:50