0

@Html.EditorFor(m => Model.... でモデルを編集しています。

プロパティの 1 つを強制的に管理者またはユーザーにする必要があります。

これら 2 つのオプションでドロップダウン ボックスを強制的に表示するには、モデル プロパティにどの属性を追加できますか?

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 に答える