1

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

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

家庭控制器目前知道如何为以下内容创建视图:“关于”、“联系我们”……
我希望它是主要的索引操作来显示前 10 名评论者/评论/餐厅。这些“前 10 名”列表的外观与专用控制器中的相应列表不同。


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

(此视图仅用于主控制器的 Index 操作)

4

2 回答 2

3

首先,我会查看您的标记并决定首先需要拆分为部分视图是否足够。如果不是,那么保留在视图本身中是完全可以的。为了它而抽象事物毫无意义。

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

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

于 2013-03-20T13:07:40.620 回答
0

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

于 2013-03-20T08:35:57.273 回答