Entity framework 下拉列表的SelectList中的不同列
我只针对一列从表中检索不同的值。当我在控制器中调试ViewData时,它完美地检索到了值,但在我的视图中,它表示对象未被引用。谁能帮我一下吗 我认为在应用distinct后,dataValueField和dataTextField不再命名为“TeamName”。如何命名我选择的选定列,以便下面的SelectList可以工作。谢谢 控制器Entity framework 下拉列表的SelectList中的不同列,entity-framework,linq,asp.net-core,Entity Framework,Linq,Asp.net Core,我只针对一列从表中检索不同的值。当我在控制器中调试ViewData时,它完美地检索到了值,但在我的视图中,它表示对象未被引用。谁能帮我一下吗 我认为在应用distinct后,dataValueField和dataTextField不再命名为“TeamName”。如何命名我选择的选定列,以便下面的SelectList可以工作。谢谢 控制器 ViewData["TeamNames"] = new SelectList(_context.ActivityMaps.Select(s
ViewData["TeamNames"] = new SelectList(_context.ActivityMaps.Select(s => s.TeamName).Distinct(), "TeamName", "TeamName", model.TeamName);
查看
<select asp-for="TeamName" class="form-control" asp-items="ViewBag.TeamNames"></select>
假设
TeamName
为字符串类型
_context.ActivityMaps.Select(s => s.TeamName).Distinct().ToList()
因此,上面的查询只返回一个字符串列表,它没有TeamName
属性
只需删除dataValueField和dataTextField
ViewData["TeamNames"] = new SelectList(_context.ActivityMaps.Select(s => s.TeamName).Distinct().ToList(), model.TeamName);
更新:
var names = _db.ActivityMaps.Select(s => s.TeamName).Distinct().Select(n => new { TeamName = n }).ToList();
ViewData["TeamNames"] = new SelectList(names, "TeamName", "TeamName", model.TeamName);
是的,它可以工作,但你能告诉我如何命名一个属性吗?