У меня возникла проблема со ссылкой на мое перечисление с модели в виде индекса. Вот код моей модели:Ссылка на перечисление из модели в виде индекса
public enum UnitOfMeasure {
Item,
Kilogram,
Liter, }
public class Product {
public Product() {
ProductOccurences = new List<ProductOccurence>(); }
[Key]
public int ProductId { get; set; }
public int ProductPhotoId { get; set; }
public UnitOfMeasure? UnitOfMeasure { get; set; }
public string ProductDescription { get; set; }
public virtual ProductPhoto Photo { get; set; }
public virtual ICollection<ProductOccurence> ProductOccurences { get; set; } }
В Индексный У меня есть поля поиска для фильтрации конкретных результатов. Вы можете также искать для значения UnitOfMeasure (я использую @ Html.EnumDropDownListFor) - но я не могу обратиться непосредственно к полю перечислений из моей модели - потому что моя точка зрения сильно типизированный:
@model IEnumerable<Models.Product>
Чтобы показать это поле значения выбора я использую трюк:
@Html.EnumDropDownListFor(model => model.FirstOrDefault().UnitOfMeasure, "Select unit of measure")
, но это ужасно и некрасиво решение - также с нежелательным значением, загруженным по умолчанию. Что является самым элегантным способом решения этой проблемы в моей ситуации?
Это не должно быть более отличается способ доступа 'ProductDescription', например. Выведенный фрагмент должен быть внутри '@foreach (элемент var в модели) {', поэтому вы просто игнорируете аргумент 'model' и используете' item', например. '@ Html.EnumDropDownListFor (model => item.UnitOfMeasure,« Выберите единицу измерения »)' –