2012-01-10 3 views
5

У меня возникли проблемы с пониманием того, как сделать коллекцию в виде выпадающего списка.fubumvc - рендеринг коллекции в виде выпадающего списка

Если у меня есть модели, как:

public class AccountViewModel {    

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

Я хотел коллекцию строк для визуализации в раскрывающемся списке.

Использование html-страницы helper InputFor не работает. Он просто визуализирует текстовое поле.

Я заметил, что InputFor может отражать тип свойства и визуализировать html соответственно. (Как флажок для логического поля).

Я также заметил, что FubuPageExtensions имеет методы для CheckBoxFor и TextBoxFor, но ничего не эквивалентно DropDownListFor.

Возможно, у меня есть что-то совершенно фундаментальное в понимании html-соглашений в fubu.

Должен ли я сам создать тег select? Если да, то каков рекомендуемый подход для этого?

ответ

10

Вы правы, что (в то время, когда я последний раз смотрел) нет метода расширения FubuMVC.Core HTML для генерации тегов выделения, хотя вы могли бы использовать HtmlTags library для генерации тега select по коду.

Как вы соприкасаетесь в своем вопросе, правильный способ атаковать это, скорее всего, с помощью соглашения HTML вместе с библиотекой HtmlTags, такой как продемонстрированный в примере FubuMVC.Recipes 'src/UI/HtmlConventionsWithPageExtensions'.

Например пример генерации перечисление может быть:

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 хранилище является достаточно новым и продолжает расти, так что могут быть некоторые лучшие примеры вокруг, но надеюсь, что это дает вам некоторые идеи.

Смежные вопросы