2012-01-03 633 views
0

에서 값을 사용하여 항목을 선택 :설정 HTML의 드롭 다운리스트는 내가 HTML 드롭 다운 목록이 뷰 모델

내보기 모델의 'Task.Completion'속성에 따라 '선택'옵션을 설정하려면
<select name="status"> 
     <option value="close" >Close Task</option> 
     <option value="open" >Reopen Task</option> 
    </select> 

:

public class TaskEditViewModel 
{ 
    public Task Task { get; set; } 
    public TaskComment TaskComment { get; set; } 
} 

Task.Completion이 NULL이면 '닫기'옵션이 선택되고, 그렇지 않으면 '열기'옵션이 선택됩니다.

어떻게하면됩니까?

답변

0

보기 모델이보기에서 수행하려는 작업에 적합하지 않은 것 같습니다 (질문에 따라 드롭 다운 목록 표시 및보기 모델의 일부 속성에 따라 값 선택).

그래서 훨씬 더 현실적인보기 모델이 될 것이다 :

public class TaskEditViewModel 
{ 
    public string Completion { get; set; } 
    public IEnumerable<SelectListItem> Actions 
    { 
     get 
     { 
      return new[] 
      { 
       new SelectListItem { Value = "close", Text = "Close Task" }, 
       new SelectListItem { Value = "open", Text = "Reopen Task" }, 
      }; 
     } 
    } 
} 

은 다음 웁니다 컨트롤러 액션을 가지고 있고보기에이보기 모델 전달할 수 :

public ActionResult Foo() 
{ 
    var model = new TaskEditViewModel(); 

    // this will automatically preselect the second item in the list 
    model.Completion = "open"; 

    return View(model); 
} 

마지막을 강하게 유형이 지정된보기에서 DropDownListFor 도우미를 사용하여이 드롭 다운을 렌더링 할 수 있습니다.

@model TaskEditViewModel 
@Html.DropDownListFor(x => x.Completion, Model.Actions)