如何将我的MVC6文件夹重新定位到另一个文件夹并仍然可以使用它们

时间:2017-01-02 00:43:38

标签: c# razor asp.net-core-mvc

我使用的是MVC6,我无法弄清楚如何在我的项目中重新定位这些文件夹:

  
      
  • MyWebApp      
        
    • 控制器
    •   
    • 的ViewModels
    •   
    • 浏览
    •   
  •   

进入这样的公共文件夹:

  
      
  • MyWebApp      
        
    • 的mvc      
          
      • 控制器
      •   
      • 的ViewModels
      •   
      • 浏览
      •   
    •   
  •   

物理地重新定位文件和文件夹很容易,但MVC无法再找到这些文件:

  

InvalidOperationException:视图'索引'没找到。该   搜索了以下位置:

/Views/App/Index.cshtml 
/Views/Shared/Index.cshtml

如何将/ Mvc文件夹添加为查找MVC相关优点的位置?

1 个答案:

答案 0 :(得分:2)

您正在寻找的是区域。与旧版本的MVC不同,使用Core时,右键单击项目时没有正式的“区域”选项。但是,您可以创建一个文件夹并将其命名为“区域”。在控制器中,您可以使用 [Area(“myArea”)] 来装饰每个控制器,以指定区域内的控制器。

在startup.cs中,设置如下:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "areaRoute",
                template: "{area:exists}/{controller}/{action}"
                );


            routes.MapRoute(
                name: "default",
                template: "{area=myArea}/{controller=Home}/{action=Index}");
        });