Asp.net-Mvc

EnumDataType 屬性在 ASP.NET MVC 中有什麼作用?

  • December 4, 2011

我一直在string我的一些模型對像上使用屬性來表示列舉。我只使用字元串,因為 Entity Framework Code First 中還沒有列舉支持。無論如何,我注意到在System.ComponentModel.DataAnnotationscalled中有一個屬性EnumDataType。我嘗試設置此屬性,但似乎沒有任何影響。

我應該提到,我的最終目標是在“創建”或“編輯”視圖中為任何列舉類型顯示適當的下拉列表。我認為EnumDataType在自動腳手架場景中可能會使這更容易,但我不確定情況是否如此。

三個問題:

  1. EnumDataType在 ASP.NET MVC 中有目的嗎?
  2. 如果是,它有什麼作用?
  3. 我是否需要我的模型屬性int(而不是string)才能利用EnumDataType

EnumDataType目前僅受 ASP.NET 動態數據站點(在 .NET 4.0 中)支持。您通常可以建構自己的自定義 HTML 幫助程序,它將檢查屬性是否包含屬性(通過反射),並使用連結列舉中的值為其創建下拉列表。

我為此找到的最佳解決方案是將這個部落格這個答案結合起來。這使得視圖和模型都非常可讀和可維護。

在這裡查看我的完整答案

模型:

public enum YesPartialNoEnum
{
   [Description("Yes definitely")]
   Yes,
   [Description("No way!")]
   No
}

//........

[Display(Name = "The label for my dropdown list")]
public virtual Nullable<YesPartialNoEnum> CuriousQuestion{ get; set; }

//........

看法:

@Html.ValidationMessageFor(model => model.CuriousQuestion)

引用自:https://stackoverflow.com/questions/5798152