我正在尝试在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指令或汇编引用。关于如何解决这个问题的任何想法?
将@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>