如何使用来自不同组件的控制器区域?

时间:2011-01-29 17:49:26

标签: asp.net asp.net-mvc-3 asp.net-mvc-areas asp.net-mvc-controller

我正在启动一个新的ASP.NET MVC项目,我决定将我的控制器放在一个不同的程序集中。 Evertyhing工作正常,但我遇到了一个问题:我在我的MVC项目中创建了一个名为Administration的新区域。我在我的单独程序集中有一个AdminController类,它应该从我的Admin区域返回视图,但每次它尝试返回一个视图时, 它在错误的地方寻找它(〜/ Admin / SomeView.cshtml而不是〜/ Administration / Admin / SomeView.cshtml) 如何告诉控制器在所需区域中查找视图?

1 个答案:

答案 0 :(得分:1)

请查看this article。你的问题也得到了解答here

基本上你需要扩展MvcViewEngine,告诉MVC在不同于标准的视图中查找你的视图:

public class YourMegaViewEngine : WebFormViewEngine
{
    public YourMegaViewEngine ()
    {
        ViewLocationFormats = new string[]
        {
            "~/Views/Administration/{1}/{0}.cshtml" //I may be wrong for you case, but this is the place to puth you path
        };
    }
}