2

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

这个想法是这样的:

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

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

谁能帮我?谢谢!

4

2 回答 2

2

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

     [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

于 2012-07-25T12:48:28.693 回答
1

看看ActionFilterAttribute。它应该让你开始你想去的地方。您只需要确定要在请求中的哪个位置应用您的操作。

于 2012-07-25T12:28:10.753 回答