簡體   English   中英

在MVC Html.DropDownListFor中包括默認的“選擇選項”

[英]Include default “Select Option” in MVC Html.DropDownListFor

我的模型包含一個IEnumerable<SelectListItem> ,而視圖包含一個DropDownListFor ,除了在某些情況下需要包含默認值為“ -1”的默認“選擇選項”之外,它可以正常工作。

在控制器中:

model.Items = _context.SomeTable.Select(m => new SelectListItem()
{
    Text = m.SomeName,
    Value = m.SomeId
});

在視圖中:

@Html.DropDownListFor(
    w => Model.ItemId,
    new SelectList(Model.Items, "Value", "Text", Model.ItemId),
    new { @class = "form-control text-left" })

在Controller或View之間,如何添加以下內容作為第一個選項並有條件地選擇它(如果ItemId == -1)?

<option value="Select an Item">Select an Item</option>

由於確定控制器中當前是否存在選項的邏輯位於控制器中,因此我希望將其添加到控制器中(如果可能)。 或者,如果我可以在視圖中添加<option ... ,並在Controller傳遞-1作為ItemId時選擇它,它也會起作用。

要添加默認項目,您可以嘗試

model.Items.Insert(0, new SelectListItem { Text = "Please Select", Value = "-1" });

這會將項目推到您選擇列表的頂部。 致電后請執行此操作

model.Items = _context.SomeTable.Select(m => new SelectListItem()
{
    Text = m.SomeName,
    Value = m.SomeId
}).ToList();

不過,重要的是您要添加一個對ToList()的調用,這樣您才能處理項目的計划清單,而不僅僅是枚舉器。

有一個'DropDownListFor'替代,它帶有'optionLabel'作為參數

@Html.DropdownListFor(m => m.id, "select one", Model.selectList, new {})

您可能要檢查它為該選項生成的值。 我認為它是0或-1

暫無
暫無

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

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