Контроллер:
ViewBag.Category = new SelectList(this.service.GetAllCategories(), product.Category);
Я не использую Id + Name.GetAllCategories () возвращает только несколько целых чисел.
Когда я использую в представлении:
@Html.DropDownList("Category", String.Empty)
все работает.Правка в порядке, а DropDownList показывает выбранное значение.Результат HTML:
<select id="Category" name="Category">
<option value=""></option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option selected="selected">5</option>
...
</select>
Но мне нужно использовать css @class, поэтому я использую этот код:
@Html.DropDownList("Category", (IEnumerable<SelectListItem>)ViewBag.Category, new { @class = "anything" })
Результат HTML:
<select class="anything" id="Category" name="Category">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
...
</select>
К сожалению, изменитьвсе еще работает (я могу сохранить выбранное мной значение), но DropDownList начинает показывать значение по умолчанию, а не значение, сохраненное в базе данных .
Есть ли у вас какие-либо идеи, в чем будет проблема?
Обновление Я сделал обновление, чтобы быть более точным.
Метод GetAllCategories выглядит следующим образом:
public List<int> GetAllCategories()
{
List<int> categories = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
return categories;
}