2015-06-27 72 views
1

我正在製作一些可重複使用的MVC功能,並希望在DLL中包含視圖以使它們可以從多個MVC實現中訪問。我正在與MVC 5合作,以防它應該如何實現。MVC視圖管理

我已經對此進行了一些研究,並發現了一些可能的方法,但許多文章看起來已經過時了,因爲它們適用於早期版本的MVC。例子包括:

的最終目標是擁有一個類似的項目結構:

- Shared MVC Module 
    - Includes Views for Module features 

- First MVC Implmentation 
    - Consumes Shared MVC Module 
- Second MVC Implmentation 
    - Consumes Shared MVC Module 

主要推薦的方法是什麼?一個簡單的時尚?我們目前正在複製周圍的意見,但希望有一個更好的系統。

+0

xcoping DLL vs .cshtml文件究竟有什麼區別? – beautifulcoder

+0

我們希望在解決方案中引用項目和.cshtml文件以進行調試,而不是執行文件副本。 –

+2

儘管不是直接用於'views'和cshtml,但最簡單的方法是使用HtmlHelpers,它可以很容易地(/被設計成)嵌入到DLL中,並與NuGet等一起部署。但是,您在代碼隱藏中編寫html 。這就是MVC中的所有'EditorFor'等編寫方式。那取決於觀點的複雜程度。 –

回答

1

我面臨同樣的問題,我找到的最佳解決方案是RazorGenerator

它由兩個部分組成:

  1. 一個Visual Studio擴展,將預編譯的意見。這樣,它們將作爲編譯類包含在DLL中。
  2. 一個運行時DLL,它提供了一個可以使用這些預編譯視圖的視圖引擎實現。

我一直在少數項目中使用它,它工作得很好。特別是,我喜歡這樣一個事實,即如果我在常規Razor引擎的之後添加RazorGenerator視圖引擎,我可以覆蓋使用它們的項目中的預編譯視圖,這提供了相當大的靈活性。

+0

我會研究這個選項。這聽起來像它可能正是我們正在尋找的。 –