使用 Select TagHelper 设置 Default/Null 值

Set Default/Null Value with Select TagHelper

在 asp.net mvc 中你可以使用:

@Html.DropDownListFor(model => model.Category, ViewBag.Category as IEnumerable<SelectListItem>, "-- SELECT --", new { @class = "form-control" })

Using asp.net 5、如何在taghelper中包含默认值或空值(-- SELECT --):

<select asp-for="Category" asp-items="@ViewBag.Category"  class="form-control"></select>

您可以在 select 中插入一个选项:

<select asp-for="Category" asp-items="@ViewBag.Category"  class="form-control">
    <option disabled selected>--- SELECT ---</option>
</select>

上面代码中的 disabled 关键字意味着一旦在列表。如果您希望用户能够再次清空 selection(即,如果它绑定到可为空的字段),则只需省略 disabled。

如果您使用 asp-items 作为您的模型,它对所选项目使用值 0,如果您的标签 <option> 和您的默认字符串没有值,

您必须为 <option> 使用循环并将您的默认选项置于循环之外。 这是使用 asp-items:

的 .Net Core 示例
<select asp-for="DepartmentUnit" asp-items="@Model.DepartmentUnits" class="form-control"></select>

现在这是另一个使用循环的例子:

<select>
<option val="">--Select--</option>
foreach(item in Model.DepartmentUnits)
{<option val="@item.val">@item.title</option>}
</select>

如果你想将值 null 存储到数据库然后使用 <option selected value="">Full Access</option>

马特的回答:

    <select asp-for="Category" asp-items="@ViewBag.Category"  class="form-control">
        <option disabled selected>--- SELECT ---</option>
    </select>

也适用于验证。可能是因为选项 disabled 它似乎不是一个有效的选择。

顺便说一句:这也适用于 MVC Core 3 ;-)