2013-02-15 3 views
0

나는MVC 드롭 다운 목록 : 설정 클래스 이름 및 기본 선택 항목

@Html.DropDownListFor(model => model.param, new SelectList 
     (Model.MyList, "Value", "Text"), "Select") 

를 사용하여 아래로 드롭이이 "선택"을 목록의 첫 번째 항목을 설정합니다. 두 가지 질문이 있습니다 : 이 드롭 다운에 선택한 값과 함께 클래스를 할당 할 수 있습니까? 나는

@Html.DropDownListFor(model => model.param, new SelectList 
     (Model.MyList, "Value", "Text"), new{@class="clname", @value="Select") 

을 시도하지만, 나는 그것의 값이 빈 문자열이되지 않도록하는 기본 텍스트 select에 값을 설정할 수 있습니다, 또한

를 작동하지 않는 이유는 무엇입니까?

답변

1

컨트롤러에 선택 목록을로드합니다. 따라서 뷰 모델의 일부로 페이지에 표시됩니다.

CSS 클래스 clname 첫 번째 옵션 드롭 다운로드 다음은 제가 기본 텍스트에 값 때문에 선택을 설정할 수 있습니다, 또한 "-- Select --"

@Html.DropDownListFor(model => model.param, 
      Model.MySelectList, 
      "-- Select --", 
      new { @class = "clname"}) 

될 것이다 값 것이다 빈 문자열이 아니겠습니까?

이렇게하려면 컨트롤러에서 선택 목록을 적절한 값으로로드해야합니다.

뷰 모델 :

public class HomeViewModel 
{ 
    public string MyParam {get;set;} 
    public List<SelectListItem> MySelectList {get;set;} 
} 

컨트롤러 :

public class HomeController 
{ 
    public ActionResult Index() 
    { 
      var model = new HomeViewModel(); 
      // to load the list, you could put a function in a repository or just load it in your viewmodel constructor if it remains the same. 
      model.MySelectList = repository.LoadMyList(); 
      model.MyParam = "Select"; // This will be the selected item in the list. 
      return View(model); 
    } 
} 

보기 : 분명히한다

@model MyProject.HomeViewModel 

<p>Select: 
@Html.DropDownListFor(model => model.MyParam, 
      Model.MySelectList, 
      new { @class = "clname"}) 
</p> 

희망.