首页 >后端开发 >C++ >如何从 MVC 中的列表填充 Razor DropdownList?

如何从 MVC 中的列表填充 Razor DropdownList?

Barbara Streisand
Barbara Streisand原创
2025-01-05 04:37:43795浏览

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 集合填充下拉列表。

示例实现

这里是视图模型、控制器和视图:

ViewModel:

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