我想知道是否有一种方法可以在所有项目中共享_layout.cshtml文件。这样,如果我想更改我们公司的页面布局,则只需在一个地方进行更改。到目前为止,从研究中我已经看到人们提到可能创建.dll文件。另外我不是在谈论MVC中的领域。我想要的是让我所有单独的应用程序都引用一个共享的布局页面,而不是每个应用程序都拥有自己的布局。
答案 0 :(得分:3)
一次模式(我已参与实现)是制作一个包含布局文件(以及您希望在所有站点之间共享的任何其他内容,例如其他CSS文件)的Nuget程序包例程等),然后将软件包(通过私有供稿)安装到需要它的每个项目中,从而覆盖默认的布局文件)。
Nuget软件包的来源本身就是一个带有自定义nuget配置的C#MVC项目,该项目可确保它仅将C#项目中的必要内容包含到可分发的nuget文件中。
除了易于安装和关注点分离之外,通过Nuget分发的另一个大优点是,如果您对源文件进行更改并更新了软件包,则每个安装了软件包的应用程序都可以选择何时才是最佳时机。来更新到最新版本(如果有的话),因此,如果您更改一项内容,则不必同时更改所有与之相关的内容(例如,{ {3}}会遭受该问题的困扰-如果您在这种情况下更改了布局文件,它将立即传播到使用该布局文件的所有项目,因此,如果您想对该项目进行任何其他更改,则必须处理在您发布其他更改之前,布局更改会产生任何影响,这在当时可能并不理想/不便。)
答案 1 :(得分:1)
我过去实现此目标的方法是使用“添加为链接”。
首先,将布局文件添加到新库中,该库可以在不同项目之间共享。然后在要使用布局页面的每个项目中,将布局页面添加为链接:
nn.Sequential
以使用新的布局文件。您需要对布局进行的任何更改都可以对原始文件进行,并且在构建时所做的更改将由您的项目获得。