asp.net mvc3, почему мой выпадающий список не выбран?

Я создаю свой список выбора из enum.

[Flags]
public enum Age
{
    New_Born = 1,
    Toddler = 2,
    Preschool = 4,
    Kindergarten = 8,
    Elementary_School = 16,
    Middle_School = 32,
    High_School = 64
}


var age = from Age e in Enum.GetValues(typeof(Age))
          select new { Id = (int)e, Name = e.ToString().Replace("_", " ") };

Я попробовал оба:

var ageList = new SelectList(age, "Id", "Name", (int)Model.Child.Age);

или же

var ageList = new SelectList(age, "Id", "Name", Model.Child.Age);


@Html.DropDownListFor(m => m.Child.Age, ageList, "Your Child's Age")

Все работает, кроме выбранного значения не было выбрано.

РЕДАКТИРОВАТЬ: после часов тестирования, наконец, исправить это. chagne Id = (int) e to Id = e.

var age = from Age e in Enum.GetValues(typeof(Age))
          select new { Id = e, Name = e.ToString().Replace("_", " ") };

var ageList = new SelectList (age, "Id", "Name", Model.Child.Age);

2 ответа

Решение

после часового тестирования, наконец, исправьте это. chagne Id = (int) e to Id = e.

var age = из Age e в Enum.GetValues ​​(typeof(Age)) выберите новый {Id = e, Name = e.ToString (). Replace ("_", "")};

var ageList = new SelectList (age, "Id", "Name", Model.Child.Age);

Я только что создал похожий пример и решил вашу проблему, и я считаю, что у вас есть две проблемы с вашим кодом:

В коде вашего контроллера у вас должен быть ваш первый вариант, например:

SelectList selectList = new SelectList(items, "Id", "Name", (int)Qualities.Whatever);

И по вашему мнению:

<%= this.Html.DropDownListFor(m => m.List.SelectedValue, this.Model.List, "Qualities") %>

Подумайте об этом, зачем вам дважды передавать список SelectList? Вы должны передать выбранное значение, а затем список значений.

Тот факт, что я не использовал Razor View Engine, не имеет значения.

Другие вопросы по тегам