我需要在每个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
值,因为它无效。
有没有办法做到这一点?
答案 0 :(得分:1)
您可以使用Action Filters执行此操作。
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (...) {
// modify filterContext as needed
}
}
}
然后您可以将[MyActionFilter]
添加到控制器和/或操作