繁体   English   中英

在asp.net核心解决方案中的项目之间共享视图(.cshtml文件)

[英]Share views (.cshtml files) between projects in asp.net core solution

我有一个项目,由于各种原因,有许多控制器和视图基本相同。 目前,它们在项目之间进行复制,因此每个项目中都有几个副本。 我想知道是否还有将它们放在一个单独的项目(例如类库项目)中并修改View Locator功能(IViewLocationExpander?)或其他一些方法让它在这些视图的不同项目中查找。

我知道这可能在“完整”的asp.net中有一些黑客攻击而且从来都不是很干净或优雅,所以想知道asp.net核心是否有更好的方法?

谢谢

您可以创建AspNetCore类库并使用AspNetCore预编译视图 也如此StackOverflow答案中所示 这应该允许您根据需要编译和共享控制器和视图。 将不再需要部署视图(.cshtml文件),因为它们将在此类库中编译和可用。

然后添加对此类库项目的引用(如果在同一解决方案中)或将其创建为Nuget包并将其添加到其他项目。 (这可以通过私有Nuget服务器或Local Nuget存储库文件夹完成)。

更新: ASP.NET Core 2.1有一个新的Razor SDK ,使这更简单。 它会发出一个视图程序集(AppName.Views.dll)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM