【问题标题】:ASP.NET core 5 MVC Null drop down list optionASP.NET core 5 MVC Null 下拉列表选项
【发布时间】:2021-12-21 14:12:21
【问题描述】:

我的控制器中有这个简单的下拉列表:

List<SelectListItem> options = new()
            {
                new SelectListItem { Value = "True", Text = "Yes" },
                new SelectListItem { Value = "False", Text = "No" }
            };
            options.Insert(0, new SelectListItem { Value = null, Text = "Select" });
            ViewBag.options = options;

我将此下拉列表用于页面上的几个不同的是或否选项,但用户可能并不总是需要是或否,有时最好将选项保留为空。但是,当我选择“选择”选项时,代码会尝试使用字符串“选择”,即使我已将该选项的值设置为空。所有这些下拉选项都适用于位列并允许空值。

如何添加一个将输入 null 值而不是字符串“Select”的选择?

这可能是一个不同的问题,但我在页面上也有使用相同选项的下拉列表:

<div class="form-group row">
                <b class="col-md-6">Does this project require a bat habbitat assessment?</b>
                <select name="Bat" class="form-control col-md-2" asp-items="@ViewBag.options"></select>
            </div>

但是这个列表没有绑定到数据库列,只触发发送电子邮件。出于某种原因,这个框迫使我选择是或否,并且不会接受空值;为什么会这样,我该如何解决?

【问题讨论】:

  • 嗨,有趣,也许试试空字符串?
  • 共同交谈是浪费时间。这将只是一个基于意见的谈话。请将代码发布在您想要但不能使用“null”的地方。而且我也没有看到任何模型可以绑定。如果您只是在谈论纯 html5,那么情况就完全不同了。
  • 我在select 中没有看到asp-for 那么你如何发送数据?
  • 在视图中,将选项选择的值设置为字符串,然后在控制器中将此字符串转换为null。然后将数据插入数据库。
  • @SelimYildiz 感谢大家抽出宝贵时间查看此内容。如果您有兴趣,我想通了并添加了我自己的答案。

标签: c# null asp.net-core-mvc dropdown


【解决方案1】:

我想通了。 HTML 没有 null 的概念,所以它默认为文本。

我刚刚将它从 null 更改为空字符串 "" 并且它正在工作。

List<SelectListItem> options = new()
            {
                new SelectListItem { Value = "True", Text = "Yes" },
                new SelectListItem { Value = "False", Text = "No" }
            };
            options.Insert(0, new SelectListItem { Value = "", Text = "Select" });
            ViewBag.options = options;

然后在 Bat 下拉问题中,我使用 bool 将其发送到控制器(不使用 asp-for,因为它不是模型中的字段),但由于它可以为 null,因此需要为 @ 987654326@.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2014-05-22
    相关资源
    最近更新 更多