将Nuget用于共享视图

时间:2013-04-03 16:32:46

标签: asp.net-mvc nuget

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

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

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

是否可以使用一个nuget包进行共享视图,这是一个好主意,还有什么其他可能的重新发布?我对nuget,mvc以及相关主题的了解非常简陋,但这似乎是管理代码的好主意。

再次感谢。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

一旦你在一个类库中获得了你的视图,创建一个nuget包就可以和其他任何东西一样工作了。再说一次,让Google引导一路。

答案 2 :(得分:1)

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

这是Nuspec Reference。我无法直接链接到它,但向下滚动到文件元素示例,然后内容文件