我想知道什么是更快。我应该将我从DB查询的信息存储到ViewBag中,然后在View中访问和显示它,还是应该直接在View中进行查询。 控制器是MVC的中间层,所以对我来说似乎合乎逻辑,访问控制器中的DB应该更快。
示例:
1)在Controller中,我访问数据库并将信息放入ViewBag,以便我可以在View中显示它。
控制器:
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)在Controller中,我只将DB中的常规数据放入ViewBag,并在View中访问它。
控制器:
EVENT e = db.EVENT.Find(id);
ViewBag.event = e;
视图:
<p>
@if(ViewBag.event.poster_id != null)
{
@ViewBag.event.DATA.path;
}
</p>
我很感激你的答案并补充说明......
答案 0 :(得分:2)
您不应该直接从视图访问数据层,这应该在控制器中完成。另外,请考虑将强类型视图模型传递给视图,而不是使用ViewBag。
有关在MVC中使用视图模型的原因,请参阅http://theminimalistdeveloper.com/2010/08/21/why-when-and-how-to-use-typed-views-and-viewmodel-pattern-in-asp-net-mvc/。