Я реализовал раскрывающийся список с помощью HTML-помощников в форме. Я указал значение по умолчанию для раскрывающегося списка. Выпадающий список заполняется с использованием viewModel.
Это мой код для DDl.
<div class="form-group">
@Html.LabelFor(m => m.Genre)
@Html.DropDownListFor(m => m.Genre, new SelectList(Model.Genres, "Id", "Name"), "Select a Genre", new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Genre)
</div>
Модель для формы показана ниже
public class GigFormViewModel
{
[Required]
public string Venue { get; set; }
[Required]
[FutureDate]
public string Date { get; set; }
[Required]
[ValidTime]
public string Time { get; set; }
[Required]
public byte Genre { get; set; }
public IEnumerable<Genre> Genres { get; set; }
public DateTime GetDateTime()
{
return DateTime.Parse(string.Format("{0} {1}", Date, Time));
}
}
Теперь в контроллере я заполняю DDl.
[Authorize]
public ActionResult Create()
{
var viewModel = new GigFormViewModel
{
Genres = _dbContext.Genres.ToList()
};
return View(viewModel);
}
Это модель жанра
public class Genre
{
public byte Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
}
Ниже приведен HTML-код выпадающего списка.
<div class="form-group">
<label for="Genre">Genre</label>
<select class="form-control" data-val="true" data-val-number="The
field Genre must be a number." data-val-required="The Genre field is
required." id="Genre" name="Genre">
<option value="">Select a Genre</option>
<option value="1">Jazz</option>
<option value="2">Blues</option>
<option value="3">Rock</option>
<option value="4">Country</option>
</select>
<span class="field-validation-valid" data-valmsg-for="Genre" data-
valmsg-replace="true"></span>
</div>
При наличии вышеуказанного кода список DDl заполняется. Но выбранное значение не отображается в DDL и не является значением по умолчанию.
Я что-то здесь не так делаю?