gpt4 book ai didi

asp.net-mvc - 如何将 MVC Html Helper .DropDownListFor<> 与 Enum 一起使用

转载 作者:行者123 更新时间:2023-12-04 16:55:46 24 4
gpt4 key购买 nike

在我的 MVC 3 Razor 应用程序中,我有一个带有枚举的模型..

模型示例:

public class EmployeeModel
{
public enum Title
{
Accountant = 111,
Sales = 222,
Production = 333
}

[Required]
public string Name {get; set;}

[Required]
public Title JobTitle {get; set;}
}

在我的 View 中,我想使用 Html 助手来构建一个 Html 表单......

查看示例:
@model ..Models.EmployeeModel

@using (Html.BeginForm())
{
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
<br>

@Html.LabelFor(m => m.JobTitle)
@Html.DropDownListFor(m => m.JobTitle, ??How do I get Title enum values??)
<br>

<input type="submit />
}

我试图实现的 DropDownListFor 的输出如下所示:
注意选项值匹配枚举的初始化值
<select name="JobTitle">
<option value="-1">Choose a Job Title</option>
<option value="111">Accountant</option>
<option value="222">Sales</option>
<option value="333">Production</option>
</select>

如何让 DropDownListFor<> 助手根据模型的 Title 枚举创建选择/选项元素?

另外,是否可以让 DropDownListFor<> 助手添加一个类似于上面示例中的“选择职位”选项的额外(不是枚举的一部分)?

最佳答案

你可能会得到一个 String[]使用枚举值的名称并从中创建一个下拉列表。在您的 View 模型中,添加一个属性 Titles类型 SelectListItem并将枚举值和名称添加到其中。您可以通过 System.Enum 获取名称和值。类型。

var defaultItem = new SelectListItem();
defaultItem.Value = -1;
defaultItem.Text = "Choose a title";
defaultItem.Selected = true;
model.TitleSelectItems.add(defaultItem);

String[] names = System.Enum.GetNames(typeof(Title));
Int[] values = System.Enum.GetValues(typeof(Title));

for (int i = 0; i<names.Length; i++)
{
var item = new SelectListItem();
item.Text = names[i];
item.Value = values[i];
model.TitleSelectItems.Add(item);
}

这有点难看,但它会起作用。

关于asp.net-mvc - 如何将 MVC Html Helper .DropDownListFor<> 与 Enum 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6146204/

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