Исключение нулевой ссылки шаблона редактора для элементов подкласса модели
Я использую шаблон редактора для загрузки перечислителя и код
@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
}
Любая идея, почему я получаю нулевое исключение для свойства подкласса?