使用Select TagHelper设置默认值/空值

时间:2016-01-18 01:04:49

标签: c# asp.net-core asp.net-core-mvc tag-helpers

在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 个答案:

答案 0 :(得分:47)

您只需在选择内插入一个选项:

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

上面代码中的disabled关键字表示&#34; --- SELECT ---&#34;一旦在列表中选择了选项,就无法再次选择行。如果您希望用户能够再次清空选择(即,如果它被绑定到可空字段),则只需省略禁用。

答案 1 :(得分:2)

如果你为你的模型使用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>

答案 2 :(得分:1)

马特的答案:

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

也可用于验证。可能由于该选项为disabled,似乎不是有效的选择。

btw .:这也适用于MVC Core 3;-)

答案 3 :(得分:0)

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