【发布时间】:2017-01-04 09:22:09
【问题描述】:
我在索引视图中从模型中引用我的枚举时遇到问题。 这是我的模型的代码:
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的方式不同。您显示的 sn-p 应该在@foreach (var item in Model) {之类的内部,因此您只需忽略model参数并使用item,例如@Html.EnumDropDownListFor(model => item.UnitOfMeasure, "Select unit of measure")
标签: asp.net-mvc entity-framework enums