무엇이 더 빠를까 궁금합니다. 나는 DB에서 쿼리 한 정보를 ViewBag에 저장 한 다음 뷰에 액세스하여 표시해야하며 그렇지 않으면 View에서 직접 쿼리를 만들어야합니다. 컨트롤러는 MVC의 중간 계층이므로 논리적으로 보일 것입니다. 컨트롤러에서 DB에 액세스하는 것이 더 빨라야합니다.MVC ViewBag :보기에서 직접 액세스보다 Controller에서 ViewBag가있는 DB에 액세스하는 것이 더 빠릅니다.
예 : 컨트롤러
1) 내가 DB 액세스 나 뷰에 표시 할 수 있도록 ViewBag에 정보를 넣어.
컨트롤러 : 난 ViewBag에 유일한 DB에서 일반 데이터를 배치 컨트롤러
<p>POSTER: @ViewBag.dict_poster;</p>
2) 및보기 대한 액세스 그것 :
EVENT e = db.EVENT.Find(id);
ViewBag.event = e;
if (e.poster_id != null)
{
poster = e.DATA.path;
}
ViewBag.dict_poster = poster;
보기.
컨트롤러 :
EVENT e = db.EVENT.Find(id);
ViewBag.event = e;
보기 :
가 더 사용하는 것이 더 적절한 무엇<p>
@if(ViewBag.event.poster_id != null)
{
@ViewBag.event.DATA.path;
}
</p>
- ? 무엇이 더 빠릅니까?
- 내가 매우 분지 된 DB를 가지고 있고 "ViewBag.e"에 모든 것을 저장해야한다면, ViewBags에 개별 값을 저장하는 것이 더 빠르며 뷰에서 액세스하거나보기에서 직접 액세스하는 것이 더 빠릅니까?
- 목록은 어떻게됩니까? (목록으로 DB 정보를 저장하는 ViewBag에 넣어하고보기에 액세스하는 것보다)
나는 당신의 답변에 추가 설명에 감사드립니다 .... 당신은
감사합니다. 강력하게 형식화 된 뷰 모델은 속도에 영향을 미치지 않습니까? 아니면 "intelisense"지원 및 개요만으로 더 낫습니까? – Dominik
눈에 띄는 차이는 없습니다. ViewData/ViewBag 사용 문제는 유지 보수를 방해하는 '마법 문자열'문제입니다. 자세한 내용은 링크를 참조하십시오. – devdigital
다시 한번 감사드립니다. D – Dominik