Исключение нулевой ссылки шаблона редактора для элементов подкласса модели

Я использую шаблон редактора для загрузки перечислителя и код

@model Enum
@{
    // Looks for a [Display(Name="Some Name")] Attribute on your enum
    Func<Enum, string> getDescription = en =>
    {
        Type type = en.GetType();
        System.Reflection.MemberInfo[] memInfo = type.GetMember(en.ToString());

        if (memInfo != null && memInfo.Length > 0)
        {

            object[] attrs = memInfo[0].GetCustomAttributes(typeof(System.ComponentModel.DataAnnotations.DisplayAttribute),
            false);

            if (attrs != null && attrs.Length > 0)
                return ((System.ComponentModel.DataAnnotations.DisplayAttribute)attrs[0]).Name;
        }

        return en.ToString();
    };
    var listItems = Enum.GetValues(Model.GetType()).OfType<Enum>().Select(e =>
    new SelectListItem()
    {
        Text = getDescription(e),
        Value = e.ToString(),
        Selected = e.Equals(Model)
    });

    @Html.DropDownList("", listItems, new {@class="form-control" })
}

На мой взгляд Razor у меня есть модель с 2 свойствами

@model RoyaltyDb.Models.LicenseItemModel

        @Html.EditorFor(model => model.ItemMain, "Enum_DropdownList", new { @class = "form-control" })
        @Html.EditorFor(model => model.SubClassModel.ItemSub, "Enum_DropdownList", new { @class = "form-control" })

Я получаю ссылку на объект, не установленную для экземпляра объекта. на линии

var listItems = Enum.GetValues(Model.GetType()).OfType<Enum>().Select(e =>
    new SelectListItem()
    {

Но это не проблема для первой строки, т.е. основного свойства модели. Это мой перечислитель, а ItemMain и ItemSub имеют тип CurrencyEnums

       public enum CurrencyEnums
    {
        [Display(Name = "Nk")]
        Nk,
        [Display(Name = "Dollas")]
        Dolar,
        [Display(Name = "EURO")]
        EUR
    }

Любая идея, почему я получаю нулевое исключение для свойства подкласса?

0 ответов

Другие вопросы по тегам