Asp.net mvc 将默认选项前置到SelectList not working
在我的控制器中,我有:Asp.net mvc 将默认选项前置到SelectList not working,asp.net-mvc,asp.net-core,insert,selectlist,prepend,Asp.net Mvc,Asp.net Core,Insert,Selectlist,Prepend,在我的控制器中,我有: var parentSubjects = new SelectList(_context.Subject, "SubjectId", "SubjectName"); parentSubjects.ToList().Insert(0, new SelectListItem() { Text = "None", Value = "" }); 执行第二行时不会发生任何事情。我希望在列表的第0个索引处插入一个空白项。我缺少什么?当您调用parentSubjects.ToList
var parentSubjects = new SelectList(_context.Subject, "SubjectId", "SubjectName");
parentSubjects.ToList().Insert(0, new SelectListItem() { Text = "None", Value = "" });
执行第二行时不会发生任何事情。我希望在列表的第0个索引处插入一个空白项。我缺少什么?当您调用
parentSubjects.ToList()
时,您正在从parentSubjects
创建列表的新副本,并且插入操作将对该副本进行操作。由于未保存列表,新项目将丢失
您可以通过保存由ToList()
创建的列表并使用该列表来修复此问题:
var parentSubjects=new SelectList(_context.Subject,“SubjectId”,“SubjectName”).ToList();
插入(0,新SelectListItem(){Text=“None”,Value=”“});
如果您在视图中使用的是asp items
标记帮助器,那么还有一个不同的选项,可以避免为空白/默认选项创建SelectListItem
。您可以直接将该选项添加到HTML中:
<select asp-for="SelectedSubjects" asp-items="Subjects">
<!-- simply add the option directly here; the options from
`asp-items` will be added below -->
<option value="">None</option>
</select>
没有一个
当您调用parentSubjects.ToList()
时,您正在从parentSubjects
创建列表的新副本,Insert
对该副本进行操作。由于未保存列表,新项目将丢失
您可以通过保存由ToList()
创建的列表并使用该列表来修复此问题:
var parentSubjects=new SelectList(_context.Subject,“SubjectId”,“SubjectName”).ToList();
插入(0,新SelectListItem(){Text=“None”,Value=”“});
如果您在视图中使用的是asp items
标记帮助器,那么还有一个不同的选项,可以避免为空白/默认选项创建SelectListItem
。您可以直接将该选项添加到HTML中:
<select asp-for="SelectedSubjects" asp-items="Subjects">
<!-- simply add the option directly here; the options from
`asp-items` will be added below -->
<option value="">None</option>
</select>
没有一个
ToList
创建了一个新的单独列表。谢谢,我将编辑我的帖子以包含解决方案。很高兴你能找到它。但是,不要将答案编辑为问题。改为在帖子中添加自我回答。快乐编码ToList
创建了一个新的单独列表。谢谢,我将编辑我的帖子以包含解决方案。很高兴你找到了它。但是,不要将答案编辑为问题。改为在帖子中添加自我回答。快乐编码!!!