【问题标题】:Set Default/Null Value with Select TagHelper使用 Select TagHelper 设置默认/空值
【发布时间】:2016-04-23 02:18:36
【问题描述】:

在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>

【问题讨论】:

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


    【解决方案1】:

    你可以在选择里面插入一个选项:

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

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

    【讨论】:

    • 我需要将选项的值设置为空字符串,以允许用户将底层可为空的 int 字段清空:
    • 如果您不希望禁用选项显示在下拉列表中,您可以将其设置为不显示。
    • 对于可为空的列,默认选项应该有 value="" 否则模型不会绑定
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果你的模型使用 asp-items,它使用值 0 来选择项目,如果你有标签 &lt;option&gt; 和你的默认字符串没有值,

      您必须为&lt;option&gt; 使用循环并将默认选项置于循环之外。 这是 .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>
      

      【讨论】:

        【解决方案4】:

        马特的这个回答:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-25
          • 2020-04-12
          相关资源
          最近更新 更多