2009-12-30 4 views
3

ViewData를 통해보기에 몇 가지 항목 목록을 전달하여 드롭 다운 목록을 만들려고합니다. 너무 어렵지는 않지만 MVC를 처음 접했기 때문에 분명히 뭔가 빠져있을 수 있습니다.MVC2 ViewData 문제

컨트롤러는을 ViewData에있는 목록에 할당합니다

ViewData["ImageLocatons"] = new SelectList(gvr.ImageLocations); 

및 뷰는 드롭 다운 목록으로 렌더링을 시도 :

<%= Html.DropDownList("Location", ViewData["ImageLocations"] as SelectList) %> 

그러나, 나는 그것을 실행할 때, 나는이를 얻을 오류 : '위치'키가있는 'IEnumerable'형식의 ViewData 항목이 없습니다.

왜 이것이 작동하지 않는가? 또한 위치가 아닌 핵심 "ImageLocations"를 찾지 않아야합니까?

답변

7

당신이 사용하는 경우 :

ViewData["Location"] = new SelectList(gvr.ImageLocations); 

<%= Html.DropDownList("Location") %> 

당신의 인생은 훨씬 더 쉽게 될 것입니다.

예제 (ImageLocatons => ImageLocations)에서 ViewData를 설정할 때 입력 오류 (i 누락)도 확인하십시오. 이렇게하면 DropDownList에 전달하는 두 번째 매개 변수가 null이됩니다. 이렇게하면 MVC 엔진이 위치를 검색합니다.

+0

와우. 철자 오류가 있습니다. 지금 제안한 다른 방법을 사용하고 있습니다. 고마워요! – Joe

+0

좋은 캐치. 오타를 보는 +1. 나는 당신이 그것을 지적한 후에도 몇 번 다시 읽어야했다 :-) –

0

ViewData가 재설정되었을 수 있습니까?

드롭 다운 목록을 표시하는 줄에서보기에 중단 점을 넣으십시오.
그런 다음 ViewData [ "ImageLocations"]를 빠르게 시청하십시오.

뷰가 뷰를 사용할 때 여기에 값이 있는지 확인하십시오.