Asp.net mvc EnumDataType属性在ASP.NET MVC中的作用是什么?
我在一些模型对象上使用了Asp.net mvc EnumDataType属性在ASP.NET MVC中的作用是什么?,asp.net-mvc,entity-framework,asp.net-mvc-3,ef-code-first,entity-framework-4.1,Asp.net Mvc,Entity Framework,Asp.net Mvc 3,Ef Code First,Entity Framework 4.1,我在一些模型对象上使用了string属性来表示枚举。我只使用字符串,因为在实体框架代码中还没有枚举支持。无论如何,我注意到,System.ComponentModel.DataAnnotations中有一个名为EnumDataType的属性。我尝试设置此属性,但它似乎没有影响任何东西 我应该提到,我的最终目标是在“创建”或“编辑”视图中为任何枚举类型显示适当的下拉列表。我认为在自动搭建场景中,EnumDataType可能会使这更容易,但我不确定情况是否如此 三个问题: EnumDataType在
string
属性来表示枚举。我只使用字符串,因为在实体框架代码中还没有枚举支持。无论如何,我注意到,System.ComponentModel.DataAnnotations
中有一个名为EnumDataType
的属性。我尝试设置此属性,但它似乎没有影响任何东西
我应该提到,我的最终目标是在“创建”或“编辑”视图中为任何枚举类型显示适当的下拉列表。我认为在自动搭建场景中,EnumDataType
可能会使这更容易,但我不确定情况是否如此
三个问题:
EnumDataType
在ASP.NET MVC中有用途吗int
(而不是string
)以利用EnumDataType
MVC 3没有任何逻辑来处理
EnumDataTypeAttribute
EnumDataType
当前仅由ASP.NET动态数据站点(在.NET 4.0中)支持。您通常可以构建自己的自定义HTML帮助器,该帮助器将接受属性检查,如果它包含属性(通过反射),并使用链接枚举中的值为其创建下拉列表。MVC3或EF4.1代码将首先显示以验证具有此属性的属性。由于目前EF中缺少枚举支持,这意味着您可以将属性放在integer属性上。我找到的最佳解决方案是结合。这使得视图和模型都非常可读和可维护
查看我的
型号:
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; }
//........
+谢谢。我想我可能需要一个助手方法。我是否需要为每个枚举类型使用一个helper方法,或者是否可以编写一个适用于任何枚举类型的通用方法?我相信应该可以编写一个适用于所有枚举类型的方法,因为枚举类型将从属性中提取。
@Html.ValidationMessageFor(model => model.CuriousQuestion)