2011-04-13 6 views
7

누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? :-) 모델 바인더 문제가있는 ViewBag에 익명 형식을 채움

나는이 간단한 쿼리가 있습니다

var sample = from training in _db.Trainings 
       where training.InstructorID == 10 
       select new { Something = training.Instructor.UserName }; 

을 그리고 ViewBag이 전달합니다.

ViewBag.Sample = sample; 

는 그럼 난 이렇게 내보기에 액세스하려면 :

@foreach (var item in ViewBag.Sample) { 
    @item.Something 
} 

그리고 나는 '뭔가'에 대한 정의를 포함하지 않는 오류 메시지가 '객체'를 얻을. 내가 단지 @item을 넣으면 결과는 { Something = SomeUserName }

고맙습니다.

답변

16

이 작업을 수행 할 수 없습니다. ViewBag는 동적이며 문제는 익명 형식이 내부로 생성된다는 것입니다. 그는`새 Instructor` A를 선택 어떻게주의 -

@model IEnumerable<Instructor> 
@foreach (var item in ViewBag.Sample) { 
    @item.Something 
} 
+1

1 : 다음

public class Instructor { public string Name { get; set; } } 

과 :

public ActionResult Index() { var mdoel = from training in _db.Trainings where training.InstructorID == 10 select new Instructor { Name = training.Instructor.UserName }; return View(model); } 

및보기에 난 당신이보기 모델을 사용하는 것이 좋습니다 구체적인 형식 - 익명 형식이 아닙니다. 그렇게하면 객체 내의 정보에 액세스 할 수 있습니다. –

+0

도움이되었습니다. 대답 해줘서 고마워. –

관련 문제