我是MVC3的新手,我的网站有一个设置,如果该网站是开放的。所以,我需要在调用每个动作时检查这个值。
这个想法就像:
public ActionResult SomeAction()
{
if(!settings.SiteIsOpen)
{
// redirect to siteclosed page
}
// someaction logic...
}
我知道在MVC3中有一些名为Filter的东西,需要注册RegisterGlobalFilters。我想使用此功能,但我不知道实现它的详细步骤。
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:2)
您可能必须创建一个自定义操作过滤器并像这样装饰您的Action结果
[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
答案 1 :(得分:1)
看看ActionFilterAttribute。它应该让你开始你想去的地方。您只需要确定要在哪里申请您的行动。