【发布时间】:2016-04-21 14:27:51
【问题描述】:
目前我正在使用 EF7 处理 ASP.Net MVC 6。我正在使用默认的控制器生成器。由于某种原因,即使存在数据,我的下拉菜单也没有填充创建或编辑页面上的数据。
只是为了澄清 3 个选择列表由 3 个不同的表填充,这些表都连接到我要添加到的主表。
这就是我得到的。
控制器代码
private readonly SchoolContext _context;
public SchoolsController(SchoolContext context)
{
_context = context;
}
public IActionResult Create()
{
ViewData["DistrictId"] = new SelectList(_context.Districts, "DistrictId", "District");
ViewData["LocationId"] = new SelectList(_context.Locations, "LocationId", "Location");
ViewData["TierId"] = new SelectList(_context.Tiers, "TierId", "Tier");
return View();
}
查看代码
@model School
包含在顶部,这里是选择元素之一的样子
<div class="form-group">
<label asp-for="DistrictId" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="DistrictId" class ="form-control"></select>
</div>
</div>
选择列表完全空白,没有错误有数据。
这一切都是自动生成的,所以我完全不知道出了什么问题。有什么建议吗?
【问题讨论】:
-
什么是
School?它是您的 ViewModel 还是实体?你为什么使用ViewData而不是你的School类? -
School 是包含这些字段的 3 个 ID 的数据实体,它们来自 3 个导航属性表。我使用 ViewData 的原因是我从这 3 个单独的表中发送信息,所以我有名称而不仅仅是填充列表的 ID。
-
您必须为此使用 ViewModel。你熟悉这种模式吗?
-
您可以在帖子中添加学校实体吗?您需要视图或 ViewModel 的模型。顺便说一句,在您看来,我没有看到正在使用的 School 模型。
-
好的,我没有 ViewModel 设置。不知道需要这样做才能正常运行。我会尝试设置它。您是要我为学校添加模型吗?
标签: c# asp.net asp.net-mvc asp.net-core-mvc entity-framework-core