gpt4 book ai didi

c# - MVC 下拉列表获取选定的 ID

转载 作者:行者123 更新时间:2023-11-30 21:16:36 25 4
gpt4 key购买 nike

我有一个实体,比方说:

class Person
{
id Id { get; set; }
string Name { get; set; }
int RoleId { get; set; }
}

此 RoleId 属性对应于从可用角色列表中选择的角色。我使用 ViewData 对象将这个角色列表传递给 View :

List<SelectListItem> roles = new List<SelectListItem>()
{
new SelectListItem(){ Text = "User", Value = "0"},
new SelectListItem(){ Text = "Admin", Value = "1"}
};
ViewData["roles"] = roles;

(请注意,我在这里使用字符串作为值,因为它不允许我使用整数?)

我的 View (它是一个“添加” View ,用于创建一个新的 Person)继承自 Person 实体。我不确定如何在 View 中设置下拉列表,以便将列表中所选项目的值设置为发送回 Controller (对于 HttpPost 方法)的 Person 对象中的 RoleId 属性值。

最佳答案

<%= Html.DropDownList(
"RoleId",
new SelectList(ViewData["roles"] as IEnumerable<SelectListItem>, "Value", "Text")
) %>

这不是我推荐的代码。每次看到有人使用 ViewData,我的温度都会升高。

我会使用 View 模型:

public class PersonViewModel
{
public string Id { get; set; }
public string Name { get; set; }

public string RoleId { get; set; }
public IEnumerable<SelectListItem> Roles { get; set; }
}

然后在你的 Controller 中:

public ActionResult Index()
{
var model = new PersonViewModel
{
Roles = new[]
{
new SelectListItem { Text = "User", Value = "0" },
new SelectListItem { Text = "Admin", Value = "1" }
}
};
return View(model);
}

在您的强类型 View 中:

<%= Html.DropDownListFor(
x => x.RoleId,
new SelectList(Model.Roles, "Value", "Text")
) %>

关于c# - MVC 下拉列表获取选定的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com