2011-09-20 6 views
0

저는 MVC (3)에 새로운 기능이 추가되었습니다. 동적 컨트롤로 UI를 렌더링 할 수있는 방법에 대한 아이디어를 찾으려고 노력 중이며 역동적 인 모델/클래스에도 바인딩 할 수 있습니까?MVC3 용 동적 UI

예 : UI의 멤버 테이블에있는 이름, 주소 및 상태 (코드에만 해당) 필드가 있습니다. 모델/클래스에는 이름, 주소 및 상태 필드가 포함됩니다.

사용자가 상태 이름을 보려하지만 다른 테이블 (상태 테이블)에서 사용자가 왔으므로 모델/클래스뿐만 아니라 UI에 상태 이름 (상태 테이블 = 상태 코드)이 추가되어야합니다.

추가 필드는 주 테이블과 외래 키 관계가있는 테이블을 기반으로합니다.

모든 통찰력을 높이 평가하겠습니다.

감사합니다.

답변

0

모델에 해당 필드가 포함되어 있으면 해당 필드가 바인딩됩니다. 나는 다이나믹을 어떻게 의미하는지 100 % 따르지 않습니다. 모델 바인더는 폼의 게시 된 필드를 가져 와서 모델의 속성과 이름을 일치시킵니다.

속성이 모델에 없으면 찾을 수 없으므로 바인딩되지 않습니다. FormsCollection (즉, Request.Form [ "매개 변수 이름"])의 추가 필드를 구문 분석하여 모델의 일부 동적 컬렉션에 넣는 메서드를 작성할 수도 있지만 매우 복잡 할 수 있습니다.

일반적으로 MVC를 사용하면 새로운 필드를 ViewModel에 추가하기 만하면됩니다. ViewModel은 본질적으로 해당 뷰와 관련된 모델입니다. AutoMapper http://automapper.codeplex.com/과 같은 도구를 사용하면 ViewModel과 실제 모델간에 속성 값을 매핑 (복사) 할 수 있습니다.