MVC 4 - 我应该在家庭控制器中使用局部视图吗?

时间:2013-03-20 07:56:37

标签: asp.net-mvc asp.net-mvc-4 controller partial-views

我正在学习MVC4,试图了解控制器分离的最佳实践。到目前为止,我已经了解到为站点的每个逻辑单元配备一个控制器是件好事。

例如,如果我有一个餐厅评论网站,其中包含评论,餐馆和评论者,我将添加三个匹配的控制器。每个控制器都知道如何创建实体的列表视图(可能还有一些函数)。

家庭控制器目前知道如何创建视图:“关于”,“联系我们”...
我希望它的主要指数行动能够显示前10位评论者/评论/餐厅。那些“前10名”列表与专用控制器中的相应列表具有不同的外观。

因此,对于评论,在文件夹中创建局部视图是一种好习惯 Views =>评论=> _ReviewsTopTen.cshtml?

(此视图仅用于家庭控制器的索引操作)

2 个答案:

答案 0 :(得分:3)

首先,我会查看您的标记,并确定是否足以要求首先拆分为局部视图。如果没有那么保持在视图本身是完全正常的。没有必要为了它而抽象事物。

如果你确实需要局部视图并且只能在Home控制器中使用,那么正确的位置将是Views>评论> _ReviewsTopTen.cshtml。

但是,如果partial中的标记与您网站的其他部分相同,并且只有css样式不同,那么您应该在Views>中创建局部视图。共享,以便可以在多个控制器视图中使用。

答案 1 :(得分:0)

我认为控制器逻辑分离的最佳实践是在您的主视图中使用您需要显示的每个逻辑单元的@Html.Action()方法。因此,例如,如果您需要在家庭控制器视图中显示10个评论,那么它将类似于@Html.Action("TopTenReviews", "Reviews(<-controller name)")