2012-02-09 1 views
1

강력하게 형식화 된 뷰 데이터에 List 컬렉션이 있습니다.목록을 사용하는 드롭 다운 목록의 MVC 도우미 <Cars>

어떻게 Html.DropDownList 도우미를 사용합니까?

<%= Html.DropDownList(ViewData.Model.Cars) %> 

이 MVC2입니다

(위에서 작동하지 않습니다, 서명과 일치하지 않는 것).

+0

내 DDL 자습서 참조 http://www.asp.net/mvc/tutorials/javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc 및 http://blogs.msdn.com/b/rickandy/archive/2012/01/09/cascasding-dropdownlist-in-asp-net-mvc.aspx – RickAndMSFT

답변

6

당신의 Car 클래스가이

public class Car 
{ 
    public int Id { get; set; } 

    public string Name { get; set; } 
} 

같은 것을 보았다 그리고이

public int CarId { get; set; } 

처럼보기 모델에 속성을 넣을 경우 결과보기 모델이

public class YourViewModel 
{ 
    public int CarId { get; set; } 

    public List<Car> Cars { get; set; } 
} 
과 같을 것이다

할 수 있습니다.

뷰 모델은 Action에 매개 변수가 있다면
this.Html.DropDownListFor(x => x.CarId, new SelectList(this.Model.Cars, "Id", "Name")) 

게시, CarId은 기본 모델 바인더에 의해 결합 된 결합 얻을받을 것입니다.

+0

CarId는 드롭 다운 목록을 미리 선택 하시겠습니까? – codecompleting

+0

@codecompleting 예. 따라서 뷰 모델의 해당 속성을 선택하려는 자동차의 ID로 설정합니다. 또한 MVC에서 폼 데이터를 뷰 모델에 바인딩하기 위해 기본 모델 바인더 (이 경우에는 아무 것도 수행하지 않아도 됨)를 사용할 수 있습니다. 뷰 모델 중 하나를 매개 변수로 받아 들인'Action'으로 폼을 POST 할 경우,'CarId' 속성은 디폴트 모델 바인더에 의해 자동으로 설정 될 것입니다. – Craig

+0

+1 크레이그, 더 정확하게 또는 덜 정확하게 어떻게 대답했을까요? –

관련 문제