现在我正在将Web应用程序转换为MVC 2网站。我有一个基本控制器,我的所有其他控制器继承。我有一些业务逻辑,我已经放入一个重写的Execute方法,如果需要,将把用户重定向到一个动作。
每个控制器动作都需要运行相同的逻辑,我不想在每个动作方法中调用我的函数。我想要一个放置代码的中心位置。在旧网站中,我在主页面加载事件中运行了这个逻辑,但是将这个逻辑转换为MVC 2一直是一个挑战。
答案 0 :(得分:2)
您需要在返回的ExecuteResult
上调用ActionResult
方法。
此外,您应该覆盖ExecuteCore
,而不是Execute
。否则,您将失去ControllerContext
。
顺便说一句,您应该考虑writing an ActionFilter和loading it dynamically。
答案 1 :(得分:0)
根据代码运行的时间,您可以覆盖基本控制器类中的OnActionExecuting和/或OnActionExecuted方法。
答案 2 :(得分:0)
只需将代码放在每个控制器中。 (施工前)
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
//You function here
}
请记得在一堂课中写下你的功能。如果发生任何修改,则不必再次更改控制器。