DropdownList未显示MVC 5中的默认值或所选值

时间:2018-11-12 12:46:50

标签: c# asp.net-mvc html.dropdownlistfor

我已经使用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中,默认值也不显示。

我在这里做错什么了吗?

0 个答案:

没有答案