ASP.NET Core 7 中 C# 的下拉菜单

问题描述 投票:0回答:1
public class AddUserRoleDto
{
    public string Id { get; set; }
    public string Role { get; set; }
    public List<SelectListItems> Roles{ get; set; }  
}

public IActionResult AddUserRole(string Id)
{
    var role = new List<SelectListItem>(
        _roleManager.Roles.Select(p => new SelectListItem
             {
                 Text = p.Name,
                 Value = p.Name
             }).ToList());   

    return View(new AddUserRoleDto
                    {
                        Id = Id,
                        Roles = role,
                    });
}

如何制作一个从数据库中获取其项目的下拉列表。我想在 .NET 7 中执行此操作。

selectlistItem
命名空间现已弃用。

c# list asp.net-core dropdown asp.net-core-7.0
1个回答
0
投票

SelectListItem 并未弃用。这是示例代码:

// Model
public class AddUserRoleDto
{
    public string? Id { get; set; }
    public string? Role { get; set; }
    public List<SelectListItem>? Roles { get; set; }
}
// Controller
public IActionResult Index()
{
    List<SelectListItem> roles = new List<SelectListItem>();
        
    for (int i = 1; i <= 10; i++)
    {
        SelectListItem s = new SelectListItem();
        s.Text = "Role_" + i.ToString();
        s.Value = "Role_" + i.ToString();
        roles.Add(s);
    }

    var model = new AddUserRoleDto
    {
        Id = "1",
        Roles = roles
    };

    return View(model);
}

// View Page
@{
    ViewData["Title"] = "Home Page";
}
@model TailwindSample.Models.AddUserRoleDto

<form asp-action="YourAction">
    <select asp-for="Role" asp-items="@(new SelectList(Model.Roles, "Value", "Text"))">
        <option value="">Please select the role</option>
    </select>
    <button type="submit">Submit</button>
</form>
© www.soinside.com 2019 - 2024. All rights reserved.