Asp.net-Mvc

如何在多個 Asp.net MVC 應用程序中使用通用佈局和样式

  • June 11, 2019

我有一個視覺工作室解決方案,其中包含多個具有相同外觀和感覺的 Telerik MVC4 剃須刀項目。我不想在所有 MVC4 項目中複製相同的佈局、CSS/樣式、圖像和 js 文件。實現這種可重用性的最佳方法是什麼?我嘗試創建一個 commonUI 項目的虛擬目錄,並嘗試在 _ViewStart.cshtml 中使用http://localhost/ … 引用 _layout.cshtml 但它抱怨說“http:/localhost/MyMvcApp/Views/Shared/_Layout.cshtml ’ 不是有效的虛擬路徑。”

請幫忙!

四個建議:

1)查看區域,也許不是有單獨的項目,這些是同一系統的不同組件(管理員等)?

2)使用在visual studio中添加現有項目並通過連結添加項目。這仍然會複製它們以進行部署,但您可以保留一個源。

3)考慮通過建構自己的nuget包來做到這一點。這樣,雖然您將複製 CSS 和圖像,但您可以將其打包並根據需要更新包。好處是您可以更新一個項目,而不必重新測試另一個項目(如果它們是分開的並且 1)不適用)。

4)我發現這個比其他的更醜,但是在 IIS 中我相信你可以映射到文件夾中,所以你可以通過項目中的連結來引用這些文件,而不是在那裡部署它們,然後在部署時映射到適當的文件夾中使用單一來源路徑。

我知道沒有辦法分享應用程序路徑。

編輯:

我以前從未嘗試過,因此無法保證它可以正常工作,但可能會在單獨的項目中編譯您的共享項目,然後在所有其他項目中引用該 DLL。

我找到的參考是這個,但我還沒有確認這是否有效,只是認為這可能是一條可行的探索途徑:

http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/

引用自:https://stackoverflow.com/questions/10422194