MVC3에서 특정 개체에 대한 선택 항목을 채우기 위해 꽤 많은 페이지에 드롭 다운 목록이있는 응용 프로그램을 개발 중입니다. 제 질문은 내 ViewModel의 드롭 다운 목록에 대한 컬렉션을 포함 시키거나 드롭 다운을 채울 서비스를 호출하는 것이 더 합리적입니까?MVC3 ViewModel의 컬렉션 또는 Ajax 서비스로 채우기
public class MyViewModel
{
public int SelectedFooId { get; set; }
public IEnumerable<Foo> Foos { get; set; }
}
@Html.DropDownListFor(model => model.SelectedFooId, new SelectList(Model.Foos, "Id", "Name", "-- Select Foo --"))
또는 뷰 모델에서 Foos
모음을 제거하고 JSON 또는 무언가를 통해 아약스와 함께 채워이를 구현하기 위해 더 나은 방법이있다 :
예를 들어, 더 이해하는 일은 이것을 가지고 ? 제가 서비스를 부르면, 이것이 어떻게 행해지는지 보여줄 수 있습니까? 나는 MVC에 비해 상대적으로 새로운 것으로, 나쁜 습관에 빠지기를 원하지 않기 때문에 모범 사례로 모든 것을하려고 노력하고있다.
감사합니다. 몇 가지 속성을 설정하기 위해 여러 개의 드롭 다운이있는 경우 어떻게됩니까? 여전히 좋은 구현입니까? 아니면 모델이 복잡해지기 시작합니까? – shuniar
@shuniar, 아직 아주 좋은 구현. 뷰 모델 클래스의 역할은 주어진 뷰의 요구 사항을 반영하는 것임을 기억하십시오. 따라서 뷰에 5 개의 ddls를 표시해야하는 경우 뷰 모델에서 5 개의 스칼라 속성을 사용하여 선택한 값을 바인딩하고 5 개의 컬렉션을 옵션에 바인딩합니다. –
설명해 주셔서 감사합니다. 이 구현을 계속할 것입니다. – shuniar