首頁 >後端開發 >C++ >如何從 MVC 中的清單填入 Razor DropdownList?

如何從 MVC 中的清單填入 Razor DropdownList?

Barbara Streisand
Barbara Streisand原創
2025-01-05 04:37:43756瀏覽

How to Populate a Razor DropdownList from a List in MVC?

從清單填入Razor 下拉清單在MVC 中

用List 中的資料填入下拉清單;MVC中,您可以利用視圖模型並將資料轉換為符合下拉清單要求的格式。

建立視圖模型

建立具有必要屬性的視圖模型驅動下拉列表,例如所選值的屬性和要顯示的項目列表。在本例中,我們稱之為 UserRoleViewModel。

準備 DropDownList 資料

在您的控制器中,建構一個方法來擷取下拉清單的資料。在此方法中,您可以將 List 中的資料轉換為到 SelectListItem 物件中。 SelectListItem 類別為項目的值和文字表示提供必要的屬性,SelectList 類別為下拉清單資料提供層次結構。

在視圖中使用 Viewmodel

在您看來,利用@model指令來存取UserRoleViewModel。然後,使用 Razor 助手 LabelFor 和 DropDownListFor 呈現下拉清單及其標籤。 DropDownListFor 幫助器將自動使用視圖模型中定義的 UserRoles 集合填入下拉清單。

範例實作

這裡是視圖模型、控制器與檢視:

Vi ewModel:

public class UserRoleViewModel
{
    public int SelectedUserRoleId { get; set; }
    public IEnumerable<SelectListItem> UserRoles { get; set; }
}

控制器:

public IEnumerable<SelectListItem> GetRoles()
{
    var dbUserRoles = new DbUserRoles();
    var roles = dbUserRoles
                .GetRoles()
                .Select(x =>
                        new SelectListItem
                        {
                            Value = x.UserRoleId.ToString(),
                            Text = x.UserRole
                        });

    return new SelectList(roles, "Value", "Text");
}

public ActionResult AddNewUser()
{
    var model = new UserRoleViewModel
                    {
                        UserRoles = GetRoles()
                    };
    return View(model);
}

視圖:

@model UserRoleViewModel

@Html.LabelFor(m => m.SelectedUserRoleId)
@Html.DropDownListFor(m => m.SelectedUserRoleId, Model.UserRoles)

透過遵循這種方法,您可以使用 List 中的資料有效地填充下拉清單;在 MVC 中,提供了一個乾淨直觀的使用者介面來選擇值。

以上是如何從 MVC 中的清單填入 Razor DropdownList?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn