42

在 asp.net mvc 中,您可以使用:

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

使用 asp.net 5,如何在 taghelper 中包含默认值或空值(--SELECT --)

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

4 回答 4

86

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

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

上面代码中的disabled关键字意味着一旦在列表中选择了一个选项,就不能再次选择“--- SELECT ---”行。如果您希望用户能够再次空白选择(即,如果它绑定到一个可为空的字段),那么只需省略禁用。

于 2016-01-18T01:41:16.393 回答
7

如果要将值 null 存储到数据库,请使用 <option selected value="">Full Access</option>

于 2018-12-09T17:11:24.703 回答
3

如果您对模型使用 asp-items ,它使用值 0 来表示选定项目,如果您的标签<option>带有默认字符串而没有值,

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

<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>
于 2018-03-06T10:24:18.840 回答
2

马特的这个回答:

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

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

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

于 2019-10-28T11:08:40.973 回答