2009-11-30 5 views
1

Select (SelectItem 컬렉션) 값을 전달하지 않는 간단한 선택 -> 옵션 드롭 다운 목록이 필요합니다. 나는 값들을 이미 알고 있으므로 (정적 인) 모든 것을 할 필요가 없다.변수를 사용하지 않는 간단한 드롭 다운 목록을 만들 때 어떤 HTML 도우미를 사용합니까?

필요성과 같이 뭔가를 할 수 :

<select id="day" name="day"> 
    <option value="1">Sunday</option> 
    <option value="2">Monday</option> 
</select> 

<select id="hour" name="hour"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

모든 예는을 ViewData를 통해 그것을에서 통과하는 IEnum을 만드는 방법을 보여 것 같다. 이것은 부분적으로, 나는이 데이터를 보내고 싶지 않습니다, 나는 단지 그것을 나타 내기를 원합니다.

답변

4

드롭 다운 목록에서 문자열 목록 또는 항목 사전 (다른 ID와 값을 원할 경우) 중 하나를 사용하여 선택 목록을 사용하여 값을 정의하십시오.

<%= Html.DropDownList("day", new SelectList(
    new Dictionary<int,string> { { 1, "Sunday" }, { 2, "Monday" } }, 
    "Key", "Value")) 
%> 

<%= Html.DropDownList("hour", new SelectList(
    new List<string>() { "1", "2", "3", "4" })) 
%> 
+0

SelectList 및 System.Web.Mvc 네임 스페이스가 intellesense 아래에 표시되지 않습니다. 나는 그것을 시험해보고 단지 intellesense 문제인지 또는 그것이 효과가 있을지 알아봐야 할 것입니다. 어리석은 어떤 이유 때문에 나는 그게 효과가 없을 것이라고 생각했습니다. – rball

+0

때때로 나를위한 인텔리 센스는 작동을 멈추지 만 당신을 도울 수는 없습니다. 또한 jfar가 말했듯이 정적 값을 사용하는 경우 도우미 대신 HTML 만 사용하십시오. – David

+0

헬퍼를 사용하지 않고 드롭 다운의 상태를 유지할 수있는 방법이 있습니까? – rball

0

정적 인 경우 HTML로 유지하십시오. 감각이없는 일은 복잡합니다.

+0

문제는 폼에서 유효성 검사를 수행 할 때 오류 발생 후 폼으로 돌아 가면 드롭 다운의 상태가 손실됩니다. 도우미와 함께 그들은 남아 있습니다. – rball

+0

좋아, ModelState 정보가 필요하지 않은 것처럼 들렸습니다. – jfar

+0

드롭 다운 값을 직접 전달하지 않아도되지만, 왕복 후 상자의 상태를 유지하고 싶습니다. – rball