首页 > 后端开发 > C++ > 如何在 MVC 中使用列表填充 Razor DropDownList?

如何在 MVC 中使用列表填充 Razor DropDownList?

DDD
发布: 2024-12-29 22:44:33
原创
698 人浏览过

How to Populate a Razor DropDownList with a List in MVC?

使用 List 填充 Razor DropDownList;在 MVC

在这种情况下,我们有一个包含 List 的模型,即 DbUserRoles GetRoles() 方法,以及一个在将检索到的列表作为模型传递时加载视图的控制器。

为了填充下拉列表,可以引入视图模型(UserRoleViewModel)来分离业务逻辑并简化视图。该视图模型包括用于用户选择的 SelectedUserRoleId 和用于下拉项的列表 (UserRoles)。

Controller:

  • 将 DbUserRoles 列表转换为适合演示的形式(SelectListItem列表)使用LINQ选择。

View:

  • 使用 @Html.LabelFor 和 @Html.DropDownListFor 将 viewmodel 属性绑定到相应的 HTML元素。

示例:

Viewmodel:

public class UserRoleViewModel
{
    [Display(Name = "User Role")]
    public int SelectedUserRoleId { get; set; }
    public IEnumerable<SelectListItem> UserRoles { get; set; }
}
登录后复制

控制器:

private 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)
登录后复制

这个方法会生成一个下拉列表,其中填充了 DbUserRoles 列表中的值。

以上是如何在 MVC 中使用列表填充 Razor DropDownList?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板