2013-11-27 5 views
-1

이 내 컨트롤러Viewbag mvc4에서보기에 데이터를 표시하는 방법은 무엇입니까? 코드 첫 번째 그래서 난 '없는 모델이 데이터베이스에서 발생하기 때문에

public ActionResult Index() 
    { 
     var data = (from o in db.aspnet_Users 
          from q in db.aspnet_Profile 
          where 
          o.UserId == q .UserId 
          select new{ 
           o.UserId, 
           o.UserName, 
           q.Address, 
           q.Email, 
           q.Phone, 
           q.Mobile, 
           q.SocialID,         
          } 
         ).ToList(); 
     ViewData["Allprofile"] = data; 
     return View(); 
    } 

하고 난 테이블보기에서 데이터를 표시하려면, 하나 개의보기에서 2dB 모델을 보여 문제가 발생했습니다 ViewData를 사용하여 데이터를 보여 주려고 노력합니까?

+1

뷰 모델을 생성하고 뷰백 또는 뷰 데이터를 사용하지 않고 전달하십시오. – Satpal

답변

2

여기 왜 ViewModel을 사용하지 않습니까? 당신은 다소 MVC의 목적을 무너 뜨리고 있습니다. 보기 모델은보기에 표시해야하는 데이터를 캡슐화합니다. 보기 모델을보기로 전달 -보기는 강력한 유형의보기를 승인합니다.

여러 가지 이유로 성능이 좋지 않은/복잡한 객체에 ViewData를 사용해서는 안됩니다 (성능 안전성/유형 안전성/강력한 유형 지원 없음).

코드를 변경하여 사용자에게 보여줘야하는 데이터가 포함 된 ViewModel을 반환하십시오.