2012-08-13 94 views
1

我們有一個項目,我們已經創建了2個獨立的區域,供站點的管理員使用,具體取決於經過驗證的用戶屬於哪個角色。這兩個區域之間存在一些重疊功能,但還不足以將它們組合成一個區域。所以我們爲界面做的是在兩個區域內創建一些包含相似視圖的局部視圖,但是我無法確定物理放置局部視圖的位置。ASP.NET MVC - 部分視圖設計模式?

將它放在〜/ Views/Shared中是沒有意義的,因爲沒有一個根級視圖使用這個特定的局部視圖。將文件放置在〜/ Areas/[Area]/Views/Shared中也沒有意義,因爲這兩個區域都不直接「擁有」此部分視圖。

在這種情況下,您會考慮一個最佳實踐位置?

+0

如果你不把partials放在Shared文件夾中,我認爲你不能使用內置的html helper來調用它們。 – 2012-08-13 19:27:35

+0

您可以從任何視圖中訪問任何部分視圖。它將默認查看當前共享文件夾,但也可以通過Html.Partial(「〜/ Areas/[Area] /Views/Shared/MyPartial.cshtml」,型號)指定位置。 – Keith 2012-08-13 19:29:33

+0

Ahh ,我不知道。謝謝 – 2012-08-13 19:31:09

回答

2

我覺得〜/查看/共享是不適合你這裏最好的解決方案,雖然這些局部的觀點是真的2個領域,這是單獨的控制器,因爲我承擔之間共享

但是,您可以使用

Html.Partial(pathToView, model) 

功能,包括局部視圖,無論你想可以放。 即使你提到的例子:

Html.Partial("~/Areas/[Area]/Views/Shared/PartialViewFile.cshtml", model) 

或者:

Html.Partial("~/Areas/Shared/Views/PartialViewFile.cshtml", model) 

該解決方案似乎對我來說更重要,因爲所有的領域交換意見,他們不屬於特定區域。