簡體   English   中英

ASP.NET core 5 MVC Null 下拉列表選項

[英]ASP.NET core 5 MVC Null drop down list option

我的控制器中有這個簡單的下拉列表:

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>

但此列表不與數據庫列綁定,只會觸發要發送的電子郵件。 出於某種原因,這個框迫使我選擇是或否,並且不會接受空值; 這是為什么,我該如何解決?

我想到了。 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,因此需要為bool? .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM