我有一个项目,由于各种原因,它有许多本质上相同的 Controller 和 View 。目前它们在项目之间复制,因此每个项目中都有多个副本。 我想知道是否有将它们放在一个单独的项目(例如类库项目)中并修改 View 定位器功能(IViewLocationExpander?)或其他一些方法让它在不同的项目中查找这些 View 。
我知道它可以在“完整”的 asp.net 中进行一些修改,而且它从来都不是很干净或优雅,所以想知道是否有更好的方法使用 asp.net core?
谢谢
最佳答案
您可以创建一个 AspNetCore 类库并使用 AspNetCore Precompiled Views .也如本 StackOverflow answer 所示.这应该允许您根据需要编译和共享 Controller 和 View 。 View (.cshtml 文件)将不再需要部署,因为它们将被编译并在此类库中可用。
然后添加对此类库项目的引用(如果在同一解决方案中)或将其创建为 Nuget 包并将其添加到其他项目。 (这可以通过私有(private) Nuget 服务器或本地 Nuget 存储库文件夹来完成)。
更新:ASP.NET Core 2.1 有一个新的 Razor SDK这使得这更简单。它发出一个 View 程序集 (AppName.Views.dll)。
关于c# - 在 asp.net core 解决方案中的项目之间共享 View (.cshtml 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999045/