asp.net-mvc-3 - 我想在 ASP.NET MVC3 中调用每个操作时执行代码

标签 asp.net-mvc-3 action-filter

我是 MVC3 新手,我的网站有一个设置,如果该网站是打开的。因此,我需要在调用每个操作时检查该值。

这个想法是这样的:

public ActionResult SomeAction()
{
    if(!settings.SiteIsOpen)
    {
        // redirect to siteclosed page
    }
    // someaction logic...
}

我知道MVC3中有一个叫Filter的东西,需要注册它RegisterGlobalFilters。我想使用此功能,但我不知道实现该功能的详细步骤。

有人可以帮助我吗?谢谢!

最佳答案

您可能必须创建一个自定义操作过滤器并像这样装饰您的操作结果

     [CustomActionFilter]
     public ActionResult SomeAction()
     {
     }

在 CustomActionFilter 内部,您必须实现抽象类 ActionFilterAttribute

    public class CustomActionFilter : ActionFilterAttribute
    {
       public override void OnActionExecuting(ActionExecutingContext filterContext)
       {
        // your logic here
       }
    }

ASP.NET MVC 框架将在调用任何使用操作过滤器属性标记的操作方法之前调用操作过滤器的 OnActionExecuting 方法。

有关更多详细信息,请访问此链接 http://msdn.microsoft.com/en-us/library/dd381609.aspx

关于asp.net-mvc-3 - 我想在 ASP.NET MVC3 中调用每个操作时执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11649644/

相关文章:

asp.net-mvc - 处理 .NET MVC 2 Action Filters 时的执行顺序是什么?

asp.net-mvc - 使用过滤器来执行不同的操作?

c# - ASP MVC 过滤器,在哪里实现接口(interface)?

c# - 提交包含模型集合的表单

mysql - Entity Framework 4.2 模型生成异常

asp.net-mvc-3 - ASP.Net MVC 3 - 编辑器模板的客户端不显眼验证

c# - MVC ajax 形式的嵌套对象在 Controller 中捕获

c# - MVC 编辑后重建 ICollection?

c# - 从 Web API 2 中的操作过滤器返回错误的 Http 状态代码

asp.net-mvc - 如何为所有 Controller 编写 Action 过滤器