如何在基本控制器类中使用RedirectToAction?

时间:2010-12-09 03:49:26

标签: c# asp.net-mvc model-view-controller

现在我正在将Web应用程序转换为MVC 2网站。我有一个基本控制器,我的所有其他控制器继承。我有一些业务逻辑,我已经放入一个重写的Execute方法,如果需要,将把用户重定向到一个动作。

每个控制器动作都需要运行相同的逻辑,我不想在每个动作方法中调用我的函数。我想要一个放置代码的中心位置。在旧网站中,我在主页面加载事件中运行了这个逻辑,但是将这个逻辑转换为MVC 2一直是一个挑战。

3 个答案:

答案 0 :(得分:2)

您需要在返回的ExecuteResult上调用ActionResult方法。

此外,您应该覆盖ExecuteCore,而不是Execute。否则,您将失去ControllerContext

顺便说一句,您应该考虑writing an ActionFilterloading it dynamically

答案 1 :(得分:0)

根据代码运行的时间,您可以覆盖基本控制器类中的OnActionExecuting和/或OnActionExecuted方法。

答案 2 :(得分:0)

只需将代码放在每个控制器中。 (施工前)

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
    base.Initialize(requestContext);
    //You function here
}

请记得在一堂课中写下你的功能。如果发生任何修改,则不必再次更改控制器。