模型编辑

时间:2012-09-04 22:11:20

标签: asp.net-mvc attributes editorfor

我正在用@ Html.EditorFor编辑我的模型(m => Model ....

我需要强制其中一个属性为Admin或user,

我可以将什么属性放在我的模型属性上以强制下拉框显示这两个选项?

1 个答案:

答案 0 :(得分:0)

为枚举

创建以下扩展名
public static class EnumExtensions
{
    public static IEnumerable<SelectListItem> ToSelectListItems<TEnum>(this TEnum enumObj)
    {
        var values = from TEnum e in Enum.GetValues(typeof(TEnum))
                     select new SelectListItem() { Value = e.ToString(), Text = Enum.GetName(typeof(TEnum), e) };

        return values;
    }
}

然后添加以下自定义编辑器模板(在Views / Shared / EditorTemplates下)

@model Enum

@Html.DropDownListFor(m => m, Model.ToSelectListItems())

然后使用“用户”和“管理员”作为选项,使您的属性成为枚举。

您还可以创建自定义属性以添加枚举值的显示名称(以处理空格等)。