我有以下内容,将“IT”和“HR”作为模型中的值发布。我希望 IT 和 HR 作为标签,0 和 1 作为 Controller 的值。
@Html.DropDownList("DepartmentId", new SelectList(new[] { "IT", "HR" }))
当我获得 View 时,如何在下拉列表中预选值与模型中部门 ID 中的匹配值。因此,如果一个项目的 Id 为 HR,则下拉列表应该已经选择了 HR,然后一个人可以将其更改为 IT,并且可以保存该选项。
有什么帮助吗?? 请注意,我不想更改我的模型。
回答 非常感谢 Terry Nederveld 给出了这个答案:
@Html.DropDownList("DepartmentId", new SelectList(new[] { new KeyValuePair<string, int>("IT", 1), new KeyValuePair<string, int>("HR", 2) }, "Value", "Key", (Model.ServiceItem.DepartmentId.Equals(1) ? 1 : 2)))
最佳答案
假设您使用的是 MVC3/4,最简单的方法是向您的模型添加“部门”属性。然后你可以在你的 View 中这样做:
@Html.DropDownListFor(m => m.Department.DepartmentId, Model.Departments)
你的模型看起来像这样:
public class ViewModel
{
public List<SelectListItem> Departments
{
get;
private set;
}
public Department Department { get; set; }
public ViewModel()
{
Departments = new List<SelectListItem>();
//Assume you'll be getting the list from db here?
Departments .Add(new SelectListItem { Text = "HR", Value = "IdValueHere" });
Departments .Add(new SelectListItem { Text = "IT", Value = "IdValueHere" });
}
}
这负责选择正确的项目。
关于c# - 在 MVC View 中为 HTML DropDownList 创建标签和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604471/