当我调用另一个控制器的ActionResult函数时,如何调用OnActionExecuting

时间:2013-01-20 18:22:23

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有2个MVC项目。我想直接引用一个公共页面而不必重写。我是这样做的:

public ActionResult test()
{
    OldController.Controllers.PatronController temp = new OldController.Controllers.PatronController();

    return temp.Index();
}

问题是,在“OldController”中有一些功能可以在OnActionExecuting函数中设置。当我像上面那样调用函数时,没有调用OnActionExecuting。

如何在两个项目之间共享公共页面(我可以将其返回OnActionExecuting

2 个答案:

答案 0 :(得分:2)

理想情况下,您希望在每个项目中保持导航一致,并仍然重用核心功能。

出于这个原因,我建议:

1)使用动作部分创建第3个MVC项目(部分使用动作方法 - 和控制器)。

2)将新MVC项目的引用添加到2个主要MVC项目中。

3)在每个主MVC项目中,创建在视图中呈现Action Partial的视图。

答案 1 :(得分:1)

创建一个类库的第三个项目,在该库中创建一个ControllerBase类,该类具有两个控制器之间的通用功能,并且每个项目都派生自该控制器类。