c# - 在 asp.net core 解决方案中的项目之间共享 View (.cshtml 文件)

标签 c# asp.net asp.net-mvc asp.net-core

我有一个项目,由于各种原因,它有许多本质上相同的 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/

相关文章:

c# - Application.Run(form) 永不返回(在使用 System::Management 之后)

asp.net - 如何在 AsP.NET 后台发送电子邮件?

c# - 如何在出现错误时优雅地退出我的应用程序?

c# - MVC5 中的命名约定

c# - react 太快

c# - Xamarin Studio 4.1.0.45在Mac OS X 10.6.8上启动时崩溃

c# - 如何重定向到另一个页面并在该页面上触发事件?

c# - 多语言 Asp.Net Core 3.1 MVC 应用程序不在 url 中显示语言代码

c# - 清理带有标题的 URL 的最佳方法是什么

c# - 如何在 ASP.NET + C# 中裁剪 mp3?