Возьмите следующую модель:
public class SomeModel
{
public ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string Value { get; set; }
}
Модель - это какой-то объект (например, запись в блоге), который содержит список тегов или ключевых слов.
У меня есть Razor view, показывающий форму для редактирования объекта SomeModel
:
@model SomeModel
@{
// List of available tags is passed by controller
var tags = (List<Tag>)ViewData["Tags"];
}
<label asp-for="Tags">Tags</label>
<select asp-for="Tags"
asp-items="@(new SelectList(tags, nameof(Tag.Id), nameof(Tag.Value)))">
</select>
Как и ожидалось, генерируется множественный выбор, показывающий доступные теги:
<label for="Tags">Tags</label>
<select class="input-validation-error"
data-val="true" data-val-required="The Tags field is required."
id="Tags" multiple="multiple" name="Tags">
<option value="1">tag1</option>
<option value="2">tag2</option>
</select>
@Model.Tags
правильно содержит назначенные в настоящее время теги; однако соответствующие параметры не помечены как selected
.
Как мне исправить это поведение?