簡體   English   中英

在MVC中更新時,在下拉列表中顯示選定的值

[英]Show Selected value in drop down list on updating in MVC

我正在努力編碼Gender下拉列表,因為它只有兩個值並且永遠不會更改。

如何在“編輯”視圖上顯示所選值,以便用戶可以看到所選性別並輕松更新。

建立檢視

@Html.DropDownList("Departments", new List<SelectListItem>
{
new SelectListItem { Text = "Male", Value = "1"},
new SelectListItem { Text = "Female", Value = "2"}
}, "Select")

為什么將12的值綁定到名為Department的屬性以表示值“ Male”和“ Female”的原因有點令人困惑。 我假設您確實要綁定到名為Gender的屬性。

理想情況下,該屬性應為typeof string或枚舉,以便將其存儲為“ Male”或“ Female”(值“ 1”或“ 2”對其他任何人都沒有多大意義)。

另外,您應該在控制器中生成SelectList並使用視圖模型或ViewBag屬性將其傳遞給視圖(最好是傳遞給視圖)。

public class PersonVM
    [Required(ErrorMessage = "Please select a Gender")]
    public string Gender { get; set; } // or use an enum
    public IEnumerable<SelectListItem> GenderList { get; set; }
}

在GET方法中

PersonVM model = new PersonVM()
{
    GenderList = new SelectList(new string[]{ "Male", "Female" }),
    Gender = // set this in an Edit method so the correct option is selected
}
// or if not using a view model - ViewBag.GenderList = new SelectList(new string[]{ "Male", "Female" });
return View(model);

並認為

@Html.DropDownListFor(m => m.Gender, Model.GenderList, "-select-")
// or if not using a view model - @Html.DropDownListFor(m => m.Gender, (SelectList)ViewBag.GenderList, "-select-")
@Html.ValidationMessageFor(m => m.Gender)

暫無
暫無

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

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