2013-04-03 53 views
4

我開始一個新的應用程序,它將與其他應用程序共享相同的導航欄(至少內容)。這些將全部託管在相同的域上,但可能有不同的服務器。使用Nuget共享視圖

我知道Nuget可以用來共享庫,但共享共享視圖有什麼用處呢,比如_SharedHeader,_Master頁面。例如,每個應用都必須拉下新的Nuget包並重新部署才能看到導航欄中的更改,但此代碼更改位於同一個位置,而不是每個應用更新_SharedHeader。

還有其他的選擇會更好嗎?我不確定ISS中的網站如何繼承共享視圖,我已經遇到了它們在虛擬目錄中共享web.configs。

正在使用一個Nuget包來實現共享視圖,這是一個好主意,還有其他可能的影響嗎?我對nuget,mvc和相關主題的瞭解是非常簡單的,但這似乎是管理代碼的好主意。

再次感謝。

回答

1

爲了從類庫中共享視圖,您必須編譯它們。有一個插件用於此目的,稱爲RazorGenerator。如何使用RazorGenerator超出了我可以在答案中提供的範圍,但上面的鏈接和一些在線研究應該爲您提供所需的全部設置。

一旦你在一個類庫中獲得了你的視圖,那麼創建一個nuget包就像其他任何東西一樣工作。所以,讓Google再次引導。

0

您可以使用NuGet包的功能來包含內容,而不僅僅是庫來實現這一點。當NuGet軟件包安裝完成後,它會將共享視圖複製到您的項目中。如果您的項目需要,這將使您能夠調整這些共享視圖的好處。

這是Nuspec Reference。我不能直接鏈接到它,但向下滾動到文件元素的例子,然後內容文件