Когда вы звоните parentSubjects.ToList()
, вы создаете новую копию списка из parentSubjects
, и Insert
работает с этой копией. Поскольку вы не сохранили список, новый элемент теряется.
Это можно исправить, сохранив список, созданный с помощью ToList()
и использовав его:
var parentSubjects = new SelectList(_context.Subject, "SubjectId", "SubjectName").ToList();
parentSubjects.Insert(0, new 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>