使用ASP.Net MVC6和Entity Framework 7
我使用数据库表填充编辑表单上的选择框并尝试选择正确的记录。由于某种原因,所选变量根本没有被推送,无论数据库反映什么,总是选择第一条记录。
这是表单助手
<select asp-for="SeasonId" asp-items="Model.SeasonList" class="form-control"></select>
这是控制器
var match = _context.Matches.Single(m => m.MatchId == id);
SeasonList = new SelectList(_context.Seasons, "SeasonId", "SeasonName", match.SeasonId)
这是ViewModel
public int SeasonId { get; set; }
public IEnumerable<SelectListItem> SeasonList { get; set; }
public Season Season { get; set; }
我错过了什么吗?
答案 0 :(得分:2)
将视图模型的SeasonId
值设置为您想要选择的选项值。
var vm=new YourViewModel();
var match = _context.Matches.Single(m => m.MatchId == id);
vm.SeasonList = _context.Seasons
.Select(x=>new SelectListItem { Value= x.SeasonId.ToString(),
Text= x.SeasonName).ToList();
vm.SeasonId= match.SeasonId;
return View(vm);