ASP.NET MVC - 部分视图设计模式?

时间:2012-08-13 19:23:49

标签: asp.net-mvc asp.net-mvc-3 design-patterns

我们有一个项目,我们创建了两个独立区域供网站管理员使用,具体取决于经过身份验证的用户所属的角色。这两个区域之间存在一些重叠的功能,但还不足以将它们组合到一个区域中。因此,我们为UI做的是创建一些部分视图,这些部分视图包含在两个区域内的类似视图中,但是我无法确定在何处物理放置部分视图。

将它放在〜/ Views / Shared中是没有意义的,因为没有任何根级视图使用此特定的局部视图。将文件放在〜/ Areas / [Area] / Views / Shared中也没有意义,因为这两个区域都不直接“拥有”这个局部视图。

在这种情况下,您认为最佳实践地点是什么?

1 个答案:

答案 0 :(得分:2)

我认为〜/ Views / Shared在这里不是最好的解决方案,尽管这些部分视图在两个区域之间实际上是共享,它们是独立的控制器,如我假设。

但是,您可以使用

Html.Partial(pathToView, model)

功能包括局部视图,可以放在任何你想要的位置。 甚至你提到过的例子:

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

或者:

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

这个解决方案对我来说似乎更相关,因为所有区域都共享视图,并且它们不属于特定区域。