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

问题描述:

我正在学习MVC4,试图理解控制器分离的最佳实践。到目前为止,我已经了解到,为您的网站的每个逻辑单元设置一个控制器是很好的。因此,例如,如果我有一个包含评论,餐馆和评论者的餐厅评论网站,我将添加三个匹配的控制器。每个控制器都知道如何创建实体的列表视图(可能还有其他一些功能)。MVC 4 - 我应该在家用控制器中使用局部视图吗?

家庭控制器目前知道如何创建“关于”,“联系我们”的意见...
我希望它是主要的索引行动,以显示前10名评论者/评论/餐馆。这些“前10名”列表与专用控制器中的相应列表有不同的外观。

所以对于评论,会是一个很好的做法,创建文件夹
视图的局部视图=>评论=> _ReviewsTopTen.cshtml?

首先,我会看看你的标记,并决定是否足以要求首先拆分为局部视图。如果没有,那么保持视野本身就是完美的。为了它而抽象的东西没有意义。

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

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

我认为控制器逻辑分离的最佳实践(此视图仅在归属位指示的索引操作中使用)是使用@Html.Action()方法在家里视图为每个逻辑单元u需要显示。因此,例如,如果你需要显示在家庭控制器视图中的10条评论,它将是类似于@Html.Action("TopTenReviews", "Reviews(<-controller name)")