.net core ASP.NET核心控制器、视图和视图模型位于单独的DLL中

.net core ASP.NET核心控制器、视图和视图模型位于单独的DLL中,.net-core,asp.net-core-mvc,asp.net-core-2.0,.net Core,Asp.net Core Mvc,Asp.net Core 2.0,我有一个ASP核心MVC网站设置使用,所以基本上每个控制器和相关的视图和视图模型都在一个文件夹中。我想扩展它,使每个功能都在一个单独的DLL中。例如,我会有一个“Accounts”dll,它有AccountController和相关的视图,我甚至会有一个“Shared”dll,它有任何共享视图,比如_Layout.cshtml 为了说明我正在尝试做什么,下面的图片取自。我希望每个红色框都是一个单独的dll 有人知道怎么做吗?试试以下方法: 创建一个新的ASP.NET核心应用程序,该应用程序只包

我有一个ASP核心MVC网站设置使用,所以基本上每个控制器和相关的视图和视图模型都在一个文件夹中。我想扩展它,使每个功能都在一个单独的DLL中。例如,我会有一个“Accounts”dll,它有AccountController和相关的视图,我甚至会有一个“Shared”dll,它有任何共享视图,比如_Layout.cshtml

为了说明我正在尝试做什么,下面的图片取自。我希望每个红色框都是一个单独的dll

有人知道怎么做吗?

试试以下方法:

  • 创建一个新的ASP.NET核心应用程序,该应用程序只包含一个名为Areas的文件夹
  • 在“区域”文件夹中,添加一个新文件夹(要素名称)。例如,忍者
  • 将对此项目的引用添加到主Web项目中
  • 将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?}");
    });
    

  • 一些你需要阅读的东西:那么你的问题是什么?有一篇关于这种发现的文档帖子:功能文件夹是个好主意。但每个功能的一个项目将增加大量工作。如果您需要一项功能作为微型服务。我建议您在需要时提取它。如果可能的话,我实际上努力将所有内容都部署为单个dll。