2013-05-02 2 views
0

다른 도시 이름을 포함하는 IEnumerable 목록 모델이 있는데이 모델에서 DropDownList를 만들고 싶습니다. 예를 보았지만 링크를 만들면 같은 것을 할 수 있다고 생각합니다. 목록을 반복하여 드롭 다운 목록을 만듭니다. 내가 어떻게 할 수 있니?DropDownList from IEnumerable <string>

@model IEnumerable<string> 





    @foreach (var link in Model) 
    { 
     // ???? 
    } 

답변

3

당신은, 당신이 IEnumerable<string>에 대한 다음과 같은 반복적 인 방법을 사용할 수없는 귀하의 질문에서, 당신 같은 소리, HtmlHelpers을 사용하지 않으려면 :

<select name="myFormInputName"> 
@foreach (var link in Model) 
{ 
    <option value="@(link)">@(link)</option> 
} 
</select> 
+0

@Html.DropDownListFor(myvar=>myvar.City, selectList)이 대안 주셔서 감사합니다는 "강력한 이름의"드롭 다운리스트를 사용하여 선호하지만. – Meds

+0

당신의 대답은 그 자체로 잘못된 것은 아니지만, .NET .NET을 사용하면 그것이 정확하다는 것을 느낄 수 있습니다! 일반적으로 IEnumerable, Array, list, dictionary 또는 임의의 열거 형 구조를 사용할 때는 DropDownList를 사용해야합니다. 그것에 대한 논쟁은 절대적으로없고, ID를 사용하는 프로젝트 유지 보수 측면에서 너무 많은 찬성이 있습니다. –

+0

@ Segev-CJ-Shmueli를 제외하고는 질문자가 Asker가 HtmlHelpers를 사용하기를 원하지 않지만 사실 "목록을 통해 반복 *"하는 HtmlHelpers가 본질적으로 좋지 않다고 제안하는 경우 질문을 무시하는 대답. –

7

사용 (컨트롤러에 selectList의 이동없이) 당신

@Html.DropDownList("cities", new SelectList(Model)) 
+1

그는 반복적 인 방법을 구체적으로 요구해 왔습니다. 이미 HtmlHelpers를 보았던 것 같습니다. –

+2

제목은 ienumerable의 드롭 다운 목록을 원한다고 말합니다. 그래서 같은 일을 할 수있는 도우미가 있다면 왜 루프를 만드십니까? –

+0

그러면 오류가 발생합니다. Model은 IEnumerable이고 Html.DropDownList는 SelectList가 필요합니다. –

3

매우 간단하고 기본적인 형태 이미 사용할 수있는 Html 헬퍼는 다음과 같습니다

@model IEnumerable<string> 
@{ 
var selectList = new SelectList(Model) ; 

} 

@Html.DropDownList("MyDropDownListName", selectList) 

내가 Html 헬퍼 클래스 확장을 만들거나

관련 문제