在测试期间(至少)我们记录每个控制器/操作的一些底层信息。所有的控制器都来自我们自定义的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)以了解为什么我不觉得它适合这种情况。 –