在调用第二个 Action 的地方,手动触发 OnActionExecuting 方法。具体代码如下:
public ActionResult FirstAction()
{
// do something
// call SecondAction, which doesn't trigger OnActionExecuting
SecondAction();
// do something else
}
public ActionResult SecondAction()
{
// do something
// manually trigger OnActionExecuting
var filterContext = new ActionExecutingContext(ControllerContext, new Dictionary());
foreach (var filter in FilterProviders.Providers.GetFilters(ControllerContext, ActionDescriptor))
{
filter.Instance.OnActionExecuting(filterContext);
if (filterContext.Result != null)
{
// if the filter returns a result, stop
return filterContext.Result;
}
}
// do something else
}