4

我知道ASP.NET MVC 3不支持區域重用,這對於Web應用程序的用戶管理區域來說非常方便,但部分視圖又如何?是否可以在ASP.NET MVC中的多個項目上重用部分視圖?

假設我有傳呼機「控制」作爲Razor(或WebFormViewEngine,無所謂)局部視圖,我可以在我的MVC應用程序內輕鬆地重新使用。

是否有可能在多個MVC應用程序中重用它,而不是在新應用程序中創建一個局部視圖並複製粘貼代碼?

回答

7

在框架中沒有什麼可以讓你做到這一點。您可以查看MVCContrib portable areas,它允許您在多個ASP.NET MVC應用程序之間嵌入和重用視圖。您也可以找到following blog post有用。

聲明:這兩種方法都依靠編寫自定義的VirtualPathProvider,其中不起作用與預編譯的ASP.NET應用程序。因此,如果您打算在發貨前預編譯應用程序,請不要使用這些應用程序。就我個人而言,我正處在這種情況下,我最終做的是編寫一個custom NuGet package,其中包含所有必要的視圖和程序集,其中包含各自的視圖模型,開發人員需要做的所有事情是從集中位置安裝NuGet程序包,並使用Intranet /互聯網。

+3

男人你快.... :) – 2011-03-08 22:57:12

+0

它不工作嗎? http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/ – 2013-04-04 16:53:55

+0

我試圖使用該手冊,並意識到它不是工作與asp mvc 4和工作室2012年,所以我重新編譯項目形式與新的asseblies(asp mvc 4)的git集線器,並將vie wbuilder更改爲RazorGenerator下一個我已經爲asp問題應用補丁,但它仍然無法正常工作 – 2013-04-04 16:58:19

4

在由Jess Chawick撰寫的O'Reilly書籍「Programming ASP.NET MVC 4」中,有一章描述了你需要的東西。 「第15章 - 可重用的UI組件」

基本上,您可以使用視圖創建類庫項目。您必須安裝RazorGenerator,並將其設置爲.cshtml文件屬性中的自定義工具。這將從.cshtml文件生成C#代碼。現在要在您的MVC應用程序中查找標準搜索路徑之外的視圖,您必須使用Nuget Package PrecompiledMvc​​Engine。

這本書寫得很好,你可以找到一步一步的信息如何做到這一點。

相關問題