0

我想知道什么更快。我应该将我从 DB 查询的信息存储到 ViewBag 中,然后在 View 中访问并显示它,还是应该直接在 View 中进行查询。控制器是 MVC 中的中间层,所以在我看来,在控制器中访问数据库应该更快。

例子:

1)在控制器中,我访问数据库并将信息放入 ViewBag 中,以便我可以在视图中显示它。

控制器:

EVENT e = db.EVENT.Find(id);
ViewBag.event = e;

if (e.poster_id != null)
{
    poster = e.DATA.path;
}
ViewBag.dict_poster = poster;

看法:

<p>POSTER: @ViewBag.dict_poster;</p>

2)在控制器中,我只将数据库中的一般数据放入 ViewBag 并在 View 中访问它。

控制器:

EVENT e = db.EVENT.Find(id);
ViewBag.event = e;

看法:

<p>
    @if(ViewBag.event.poster_id != null)
    {
        @ViewBag.event.DATA.path;
    }
</p>
  • 用什么更好更合适?什么更快?
  • 如果我有一个非常分支的数据库并且我必须将所有内容存储到“ViewBag.e”中,将单个值存储到 ViewBags 中并且比在 Views 中访问它们更好更快,还是从 View 直接访问更快?
  • 列表呢?(将数据库信息存储到列表中,将其放入 ViewBag 中,然后在视图中访问它)

我很感谢你的回答和补充解释......

4

1 回答 1

2

您不应该直接从视图访问您的数据层,这应该在控制器中完成。此外,考虑将强类型视图模型传递给您的视图,而不是使用 ViewBag。

有关使用背后的原因,请参阅http://theminimalistdeveloper.com/2010/08/21/why-when-and-how-to-use-typed-views-and-viewmodel-pattern-in-asp-net-mvc/ MVC 中的视图模型。

于 2011-08-09T13:56:28.483 回答