Выбранное по умолчанию значение с помощью списка выбора MvcContrib.FluentHtml - PullRequest
0 голосов
/ 25 июля 2011

Я определил следующий список выбора:

<%= this.Select("Scope")
        .Options(Scopes.AllValues) // static property to get all possible values
        .FirstOption("Select scope")
        .Class("required")
        .Selected(Model.Scope) %>

где Scope - это перечисление, определенное так:

public enum Scope
{
    Full,
    Partial
}

Я использую это в пользовательском элементе управления, который отображает все элементы формы для формы создания / редактирования, поэтому я хочу, чтобы это работало как при наличии базовой модели, так и когда модель представляет собой пустую модель редактирования без свойств задавать. Однако, поскольку Scope является структурой, при инициализации модели редактирования инициализируется значением по умолчанию (которое является первым определенным значением перечисления, Full). Таким образом, опция Select value никогда не выбирается.

Я знаю, что Model.ID == 0 для новых объектов и Model.ID != 0 для существующих объектов, так что я мог бы использовать это для определения того, что должно быть показано. Однако, если я сделаю

.Selected(Model.ID != 0 ? Model.Scope : null) // how do I indicate the first item?

Я получаю ошибку компилятора, потому что нет преобразования между null и Scope (поскольку Scope является структурой).

Как мне это сделать?

1 Ответ

1 голос
/ 29 июля 2011

Я решил это: используя перегрузку .FirstOption(string value, string text) Я мог бы присвоить значение первому параметру, а затем использовать его как запасной вариант, если область действия не была установлена.

...