模型子类Items的编辑器模板空引用异常

时间:2015-02-25 04:57:28

标签: c# asp.net-mvc asp.net-mvc-5 mvc-editor-templates

我使用编辑器模板加载枚举器,代码就像

@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
    }

我知道为什么我的子类属性会出现null异常吗?

0 个答案:

没有答案