在多个项目中共享视图组件

时间:2018-10-19 02:50:43

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

我有一个很大的视图组件,我想在两个不同的asp.net核心MVC项目中使用。到目前为止,我发现了两种实现此目的的方法:

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

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

1 个答案:

答案 0 :(得分:2)

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

RLC允许您使用剃刀视图,页面,控制器,页面模型,视图组件和数据模型创建可重复使用的UI。额外的好处是,主应用程序可以覆盖视图(甚至是部分视图),其中Razor标记(.cshtml文件)具有优先权,允许按应用程序进行更改而无需修改原始共享组件。

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

阅读full documentation

相关问题