2012-01-10 2 views
5

컬렉션을 드롭 다운 목록으로 렌더링하는 방법을 이해하는 데 문제가 있습니다.fubumvc - 컬렉션을 드롭 다운 목록으로 렌더링

내가 좋아하는 모델이있는 경우 :

public class AccountViewModel {    

    public string[] Country { get; set; } 
} 

을 나는 드롭 다운 목록으로 렌더링 할 문자열 수집을하고 싶습니다.

html 페이지 도우미 InputFor가 작동하지 않는 것 같습니다. 단순히 텍스트 상자를 렌더링합니다.

나는 InputFor가 속성 유형을 반영하고 그에 따라 html을 렌더링 할 수 있다는 것을 알아 챘다. 부울 필드의 체크 박스와 같습니다.

또한 FubuPageExtensions에는 CheckBoxFor 및 TextBoxFor에 대한 메서드가 있지만 DropDownListFor에는 해당하지 않습니다.

저는 fubu에서 html 규칙을 이해하는 데 아주 기본적인 것을 빠뜨린 것 같습니다.

선택 태그를 직접 만들어야합니까? 그렇다면 권장되는 접근 방법은 무엇입니까?

답변

10

당신은 당신이 코드를 통해 선택 태그를 생성하는 HtmlTags library를 사용할 수 있지만 선택 태그 생성에 대한 FubuMVC.Core HTML 확장 방법이없는 (당시 내가 지난 보았다)하는 것이 정확합니다.

질문에 답하는대로 예 : 'src/UI/HtmlConventionsWithPageExtensions'에 나와있는 것과 같은 HtmlTags 라이브러리와 함께 HTML 컨벤션을 통해이를 공격하는 올바른 방법이있을 수 있습니다.

this.Editors 
    .If(e => e.Accessor.PropertyType.IsEnum) 
    .BuildBy(er => 
    { 
     var tag = new HtmlTag("select"); 
     var enumValues = Enum.GetValues(er.Accessor.PropertyType); 
     foreach (var enumValue in enumValues) 
     { 
      tag.Children.Add(new HtmlTag("option").Text(enumValue.ToString())); 
     } 

     return tag; 
    }); 

FubuMVC.Recipes 저장소가 아주 새로운 여전히 주위에 더 좋은 예제가있을 수 있습니다 성장하고 있지만, 이것은 당신에게 몇 가지 아이디어를 제공 희망 :

예를 들어 열거 세대를 예로들 수 있습니다.

관련 문제