跨多个项目共享视图组件
Sharing View Components across several projects
我有一个相当大的视图组件,我想在两个不同的 asp.net 核心 MVC 项目中使用它。到目前为止,我找到了两种方法来实现这一点:
这两种方法之间的取舍是什么?我的视图组件有嵌套的视图组件,它需要 java-script 来实现一些动态功能。
从 ASP.NET Core 2.1 开始,您想使用专为这种情况设计的 Razor Class 库 (RCL)。
RLC 让您可以创建可重复使用的 UI 具有剃须刀视图、页面、控制器、页面模型、视图组件和数据模型。额外的好处是,视图(甚至是部分视图)可以被主应用程序覆盖,其中 Razor 标记(.cshtml 文件)优先,允许在不修改原始共享组件的情况下对每个应用程序进行更改。
- 从 Visual Studio 文件 菜单,select 新建 > 项目。
- Select ASP.NET 核心 Web 应用程序.
- 为库命名(例如,"RazorClassLib")> 确定。为避免文件名与生成的视图库冲突,请确保
库名称不以 .Views.
结尾
- 验证 ASP.NET Core 2.1 或更高版本 selected.
- Select Razor Class 图书馆 > OK.
- 从主应用程序引用 RCL(您也可以make the shared library as NuGet package)
- 启动应用程序并访问
/MyFeature/Page1
我有一个相当大的视图组件,我想在两个不同的 asp.net 核心 MVC 项目中使用它。到目前为止,我找到了两种方法来实现这一点:
这两种方法之间的取舍是什么?我的视图组件有嵌套的视图组件,它需要 java-script 来实现一些动态功能。
从 ASP.NET Core 2.1 开始,您想使用专为这种情况设计的 Razor Class 库 (RCL)。
RLC 让您可以创建可重复使用的 UI 具有剃须刀视图、页面、控制器、页面模型、视图组件和数据模型。额外的好处是,视图(甚至是部分视图)可以被主应用程序覆盖,其中 Razor 标记(.cshtml 文件)优先,允许在不修改原始共享组件的情况下对每个应用程序进行更改。
- 从 Visual Studio 文件 菜单,select 新建 > 项目。
- Select ASP.NET 核心 Web 应用程序.
- 为库命名(例如,"RazorClassLib")> 确定。为避免文件名与生成的视图库冲突,请确保 库名称不以 .Views. 结尾
- 验证 ASP.NET Core 2.1 或更高版本 selected.
- Select Razor Class 图书馆 > OK.
- 从主应用程序引用 RCL(您也可以make the shared library as NuGet package)
- 启动应用程序并访问
/MyFeature/Page1