0

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

我需要强制其中一个属性为管理员或用户,

我可以在我的模型属性上放置什么属性来强制出现带有这两个选项的下拉框?

4

1 回答 1

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())

然后将您的属性设为枚举,并将用户和管理员作为选项。

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

于 2012-09-05T05:17:49.073 回答