使用Enum for DropdownList:缺少using指令或程序集引用

问题描述 投票:1回答:1

我正在尝试在ASP.NET Core中创建一个带有枚举属性的下拉列表。

这是模型(viewmodel):

namespace Application.Models.ApplicationviewModels
{
    public class StoreIndexData
    {
        [Display(Name = "Departamento")]
        public int DepartmentID { get; set; }
        public string DepartmentName { get; set; }    

        [Display(Name = "Distrito")]    
        public int DistrictID { get; set; }
        public string DistrictName { get; set; }
        [EnumDataType(typeof(tiendacadenaenum))]
        public tiendacadenaenum tienda_cadena {get;set;}
    }
    public enum tiendacadenaenum
        {
        [Display(Name = "Cencosud")]
        Cencosud,
        [Display(Name = "Cinerama")]
        Cinerama,
    }
}

以下是观点的一部分:

@model Application.Models.ApplicationviewModels.StoreIndexData
@using Application.Models

    <div class="form-group">
        <label asp-for="tienda_cadena" class="cold-md-2"></label>
        <div class="col-md-10">
            <select asp-for="tienda_cadena" class="form-control"
                    asp-items="Html.GetEnumSelectList<tiendacadenaenum>()">"></select>
            <span asp-validation-for="tienda_cadena" class="text-danger"></span>
        </div>
    </div>

这里显示一个问题:

Html.GetEnumSelectList<tiendacadenaenum>()">

声称缺少using指令或汇编引用。关于如何解决这个问题的任何想法?

enter image description here

c# asp.net-core enums asp.net-core-mvc
1个回答
3
投票

@using Application.Models.ApplicationviewModels添加到视图中。

此外,建议使用命名约定,因为这样可以让其他人更容易读取您的代码,特别是使用PascalCase来表示枚举名称,属性名称,命名空间名称和方法名称。

所以代码看起来应该是这样的:

namespace Application.Models.ApplicationViewModels
{
    public class StoreIndexData
    {
        [Display(Name = "Departamento")]
        public int DepartmentId { get; set; }
        public string DepartmentName { get; set; }    

        [Display(Name = "Distrito")]    
        public int DistrictId { get; set; }
        public string DistrictName { get; set; }
        [EnumDataType(typeof(TiendaCadenaEnum))]
        public TiendaCadenaEnum TiendaCadena { get; set; }
    }

    public enum TiendaCadenaEnum
        {
        [Display(Name = "Cencosud")]
        Cencosud,
        [Display(Name = "Cinerama")]
        Cinerama,
    }
}

@model Application.Models.ApplicationviewModels.StoreIndexData
@using Application.Models.ApplicationviewModels
@using Application.Models

    <div class="form-group">
        <label asp-for="TiendaCadena" class="cold-md-2"></label>
        <div class="col-md-10">
            <select asp-for="TiendaCadena" class="form-control"
                    asp-items="Html.GetEnumSelectList<TiendaCadenaEnum>()">"></select>
            <span asp-validation-for="TiendaCadena" class="text-danger"></span>
        </div>
    </div>
© www.soinside.com 2019 - 2024. All rights reserved.