【发布时间】:2020-02-20 23:13:13
【问题描述】:
采取以下模型:
public class SomeModel
{
public ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string Value { get; set; }
}
模型是某种对象(例如,博客条目),具有标签或关键字列表。
我有一个 Razor 视图,其中显示了一个用于编辑 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。
如何解决此问题?
【问题讨论】:
标签: c# asp.net-core razor html-select tag-helpers