2010-06-09 3 views
14

속성에서 가져온 값으로 DropDownList를 채우려고합니다. 이제 내 최종 결과는 "System.Web.Mvc.SelectListItem"이외의 목록입니다. 나는 여기서 생략하고있는 사소한 단계가있을 것이라고 확신하지만, 내 인생에서 나는 그것이 무엇인지 알 수 없다.이것이 왜 "System.Web.Mvc.SelectListItem"의 목록으로 렌더링됩니까?

목록을 생성하는 속성 GET :

public IEnumerable<SelectListItem> AllFoo { 
    get { 
     var foo = from g in Bar 
        orderby g.name 
        select new SelectListItem { 
        Value = g.fooid.ToString(), 
        Text = g.name 
        }; 

     return foo.AsEnumerable(); 
    } 
} 

컨트롤러 코드 :

public ActionResult Edit(string id) { 
    // n/a code 
    ViewData["fooList"] = new SelectList(g.AllFoo, g.fooid); 

    return View(g); 
} 

뷰 코드 :

<%= Html.DropDownListFor(model => model.fooid, ViewData["fooList"] as SelectList) %> 

답변

-5

편집 :이 질문은 매우 유사하다 이미 질문을 받았습니다 :

ASP.NET MVC 2 - Html.DropDownListFor confusion with ViewModel


그렇지 않으면, 당신은 도움이 문서 찾을 수 있습니다 :

http://www.nickriggs.com/posts/rendering-and-binding-drop-down-lists-using-asp-net-mvc-2-editorfor/

그것은 EditorFor를 사용을하지만, 같은 DisplayFor에 대해 수행 할 수 있습니다.

+0

감사합니다. 감사합니다. –

+4

이것은별로 도움이되지 않습니다. 이 질문은

+2

그래, 그 다른 질문이나 기사도 이것과 "매우 유사"하지 않습니다. 사실 전혀 아닙니다. –

32

SelectListIEnumerable<SelectListItem>으로 채우지 마십시오. SelectList 또는 IEnumerable<SelectListItem> 중 하나만 사용하십시오 (둘 다 사용할 수는 없습니다). 자세한 내용은 다음 질문을보십시오. Asp.Net MVC 2 Dropdown Displaying System.Web.MVC.SelectListItem

+1

짧고 요점. 좋은 대답. – Casey

+0

짧고 좋은 답변입니다. 고마워요 :) –

+0

이 하나가 내게 매 시간을 잡아! 완벽한 대답, 고마워. – VictorySaber

2

동일한 문제가 발생했습니다. 당신은 같은보기에 렌더링한다

@ Html.DropDownListFor (모델 => model.fooid, 새로운 selectList의 (을 ViewData [ "fooList", "텍스트", "값", Model.DefaultValue))

이것은 C#을 기반으로 면도날로 볼 수 있습니다.

관련 문제