Asp.net-Mvc
EnumDataType 屬性在 ASP.NET MVC 中有什麼作用?
我一直在
string我的一些模型對像上使用屬性來表示列舉。我只使用字元串,因為 Entity Framework Code First 中還沒有列舉支持。無論如何,我注意到在System.ComponentModel.DataAnnotationscalled中有一個屬性EnumDataType。我嘗試設置此屬性,但似乎沒有任何影響。我應該提到,我的最終目標是在“創建”或“編輯”視圖中為任何列舉類型顯示適當的下拉列表。我認為
EnumDataType在自動腳手架場景中可能會使這更容易,但我不確定情況是否如此。三個問題:
EnumDataType在 ASP.NET MVC 中有目的嗎?- 如果是,它有什麼作用?
- 我是否需要我的模型屬性
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)