独立DLL中的ASP.NET核心控制器,视图和ViewModel

时间:2017-12-22 21:01:00

标签: .net-core asp.net-core-mvc asp.net-core-2.0

我使用Features设置了ASP Core MVC网站,因此基本上每个控制器以及相关的视图和视图模型都在一个文件夹中。我想扩展它以使每个功能都在一个单独的DLL中。例如,我会有一个" Accounts"具有AccountController和相关视图的dll,我甚至会有一个"共享" dll有任何共享视图的东西,如_Layout.cshtml

为了说明我想要做的事情,下面的图片来自this tutorial。我希望每个红色框都是一个单独的dll。

red boxes in separate dlls

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

  1. 创建一个新的ASP.NET Core应用程序,该应用程序仅包含一个名为 Areas 的文件夹。
  2. 在“区域”文件夹中,添加一个新文件夹(要素名称)。例如,忍者
  3. 将此项目的引用添加到主Web项目中。
  4. 配置Web应用程序以处理路线中的区域,如下所示:

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