2012-08-13 99 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) 

该解决方案似乎对我来说更重要,因为所有的领域交换意见,他们不属于特定区域。