[asp.net-mvc] ASP.NET MVC : 복잡한 형식을 선택 영역에 바인딩



Answers

아직 복잡한 유형의 DefaultModelBinder를 시도하지는 않았지만 배열을 포함하여 복잡한 유형 바인딩을 쉽게 제공하는 MvcContrib 의 CastleBind ( Castle 프로젝트 에서 빌린 것)를 항상 사용할 수 있습니다.

http://blogger.forgottenskies.com/?p=258을 참조하십시오.

Question

양식 요소에 복잡한 유형을 바인딩하기위한 기본 제공 지원이 있으면 해결하려고합니다.

일반적인 가상의 상황을 사용하려면 카테고리에 속한 Product 엔티티가 있습니다. 모델은 다음과 같습니다.

public class Product
{
    public int ID { get; set; }
    public string Description { get; set; }
    public Category Category { get; set; }
}
public class Category
{
    public int ID { get; set; }
    public string Title { get; set; }
}

ASP.Net MVC 프레임 워크를 사용하여 단순한 값 유형 만 포함하는 새 엔티티를 수화하는 양식을 만드는 것이 좋고 간단합니다. 예 :

public ActionResult Create(Product product);

그러나 엔티티가 다른 복잡한 유형을 포함하고있는 위의 시나리오는 어떻게됩니까? IEnumerable < T >을 드롭 다운 목록에 바인딩 한 다음 양식을 제출할 때 자동으로 올바른 T를 수화하는 기본 제공 메커니즘이 있습니까?

그것을 수동으로하는 것은 상당히 사소한 일입니다. 나는 방금 상자에서 꺼낼 때 무엇을 가질 수 있는지 확인하려고합니다.




가장 가까운 생각은 클래스의 ToString() 메서드를 재정 의하여 DropDownList에 의미있는 정보를 출력하는 것입니다.

IEnumerable 컬렉션을 DropDownList에 바인딩 한 다음 양식을 제출할 때 SelectedItem을 검색 할 수 있습니다. 이는 내가 생각할 수있는 가장 저렴한 방법입니다.




Related