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
命名空间现已弃用。
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>