6

我正在启动一个新的应用程序,它将与未来的其他应用程序共享相同的导航栏(至少内容)。这些都将托管在同一个域上,但可能是不同的服务器。

我知道 Nuget 可用于共享库,但它在共享共享视图中的潜在用途是什么,例如 _SharedHeader、_Master 页面。例如,每个应用程序都必须拉下新的 nuget 包并重新部署以查看导航栏中的更改,但此代码更改位于一个位置,而不是在每个应用程序中更新 _SharedHeader。

还有其他更好的选择吗?我不确定 ISS 中的站点如何继承共享视图,我遇到过它们在虚拟目录中共享 web.configs。

是否可以使用一个 nuget 包来共享视图,这是一个好主意,其他可能的后果是什么?我对 nuget、mvc 和相关主题的了解非常初级,但这似乎是管理代码的好主意。

再次感谢。

4

3 回答 3

3

您可以使用 NuGet 包安装预定义的共享视图(将由多个项目使用)。查看@ http://docs.nuget.org/docs/creating-packages/configuration-file-and-source-code-transformations了解更多详情。

于 2013-04-04T23:36:00.760 回答
1

为了从类库中共享视图,您必须编译它们。为此目的有一个名为RazorGenerator的插件。如何使用 RazorGenerator 超出了我可以在答案中提供的范围,但是上面的链接和一些在线研究应该可以为您提供设置它所需的一切。

一旦你在类库中获得了你的视图,用它创建一个 nuget 包的工作方式与其他任何东西一样。再说一次,让谷歌指引方向。

于 2013-04-03T17:15:41.257 回答
1

您可以使用 NuGet 包的功能来包含内容,而不仅仅是库来实现这一点。安装 NuGet 包后,它会将共享视图复制到您的项目中。如果您的项目需要,这将使您能够调整这些共享视图。

这是Nuspec 参考。我无法直接链接到它,但向下滚动到File Element Examples,然后是Content Files

于 2013-04-03T19:48:06.990 回答