在执行[AllowAnonymous]的控制器中的MVC操作之前运行代码

时间:2012-10-14 18:39:53

标签: asp.net-mvc controller action

我有一堆控制器在类级作用域中具有[AllowAnonymous]属性。在执行此类控制器中的任何操作之前,我需要检查一些事情。例如,我可能会这样做:

[AllowAnonymous]
public class MyController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        // do some preliminary work

        // run action-specific code
    }
}

因为我有很多这样的控制器和动作,所以复制粘贴相同的代码是一个繁琐的过程。有没有办法以更简单的方式为每个匿名操作执行此初步代码?

1 个答案:

答案 0 :(得分:5)

您可以创建自己的动作过滤器。

创建一个继承ActionFilterAttribute并覆盖OnActionExecuting的类 将该属性应用于控制器或操作,它将在对该控制器或操作的每个请求之前运行。