1

我需要在每个函数中运行某个函数,ActionResult并在必要时返回某个值。

假设这个函数的名字是A(). 我可以手动执行此操作:

ActionResult Index() {
     if (...) return A();
     ...
}

ActionResult About() {
     if (...) return A();
}

或者我可以使用以下Initialize()方法:

override void Initialize(RequestContext r) {
    A(); // Can't do a return here
}

但问题是我不能返回一个ActionResult值,因为它是无效的。

有没有办法做到这一点?

4

1 回答 1

1

您可以使用操作过滤器来做到这一点。

public class MyActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (...) {
            // modify filterContext as needed
        }
    }
}

然后您可以添加[MyActionFilter]到控制器和/或操作

于 2011-12-23T03:21:05.087 回答