インデックスビューのモデルからの列挙型への参照に問題があります。私は特定の結果をフィルタリングするための検索フィールドを持つインデックスビューでインデックスビューのモデルからの列挙型への参照
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; } }
:ここに は私のモデルのコードです。あなたはまた、(私がHtml.EnumDropDownListFor @使用)UnitOfMeasure値を検索することができます - しかし、私は私のモデルからenumフィールドを直接参照することはできません - 私の見解が強く型付けされているので:
@model IEnumerable<Models.Product>
でこのフィールドを表示するには選択の値は、私はトリックを使用します。
@Html.EnumDropDownListFor(model => model.FirstOrDefault().UnitOfMeasure, "Select unit of measure")
を、それは恐ろしいと醜いソリューションです - もデフォルトでロードされた不要な値で。 私の状況でこの問題を解決する最もエレガントな方法は何ですか?
あなたはこのようEnumHelper使用することができます
:
OR
あなたは強く型付けされたビューに対して次のように行うことができますたとえば、「ProductDescription」。あなたが表示したスニペットは '@foreach(Model in var){'のようなものの中にあるべきで、 'model'引数を無視して' item'を使うだけです。 '@ Html.EnumDropDownListFor(model => item.UnitOfMeasure、"単位の選択 ")' –