asp.net-core - 跨多个项目共享 View 组件

标签 asp.net-core asp.net-core-mvc asp.net-core-2.1 asp.net-core-viewcomponent

我有一个相当大的 View 组件,我想在两个不同的 asp.net core MVC 项目中使用它。到目前为止,我发现了两种实现此目的的方法:

  1. Encapsulating it into a DLL
  2. Making a shared (dummy) web project

这两种方法之间的权衡是什么?我的 View 组件有嵌套的 View 组件,它需要 java 脚本来实现一些动态功能。

最佳答案

从 ASP.NET Core 2.1 开始,您需要使用专为这种情况设计的 Razor 类库 (RCL)

RLC 可让您使用 Razor View 、页面、 Controller 、页面模型、 View 组件和数据模型创建可重用的 UI。额外的好处是 View (甚至是部分 View )可以被主应用程序覆盖,其中 Razor 标记(.cshtml 文件)优先,允许在不修改原始共享组件的情况下对每个应用程序进行更改。

  • 从 Visual Studio 文件 菜单中,选择新建 > 项目
  • 选择ASP.NET Core Web 应用程序
  • 为库命名(例如,“RazorClassLib”)> 确定。为避免文件名与生成的 View 库冲突,请确保 库名称不以 .Views 结尾。
  • 确认选择了 ASP.NET Core 2.1 或更高版本。
  • 选择Razor 类库> 确定
  • 从主应用程序引用 RCL(您也可以 make the shared library as NuGet package )
  • 启动应用程序并访问/MyFeature/Page1

阅读full documentation

关于asp.net-core - 跨多个项目共享 View 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52885224/

相关文章:

javascript - 从razor中的javascript访问对象

c# - 如何接收发布到 ASP.net core 2.1 Web-API 端点的文件和数据

asp.net-core - npm 无法从 global.json 中找到 SDK 版本

c# - 如何在 ASP.NET Core 中检测文件下载完成

c# - 我可以直接从 visual studio 执行 npm 命令吗

c# - 具有适当缓存和 dbContext 使用的 DI 服务

entity-framework-core - 核心 2 保持领域模型与数据库变化同步

sql-server - 未列出 MSSQLLOCALDB 数据库

.net - 为什么 .NET OData Serializer 这么慢

javascript - 带有Angular的ASP.NET Core上的级联下拉列表