繁体   English   中英

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

[英]How can I use RedirectToAction within a base controller class?

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

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

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

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

顺便说一句,您应该考虑编写ActionFilter动态加载它

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM