dev*_*xer 9 asp.net-mvc entity-framework ef-code-first entity-framework-4.1 asp.net-mvc-3
我一直在使用string某些模型对象的属性来表示枚举.我只使用字符串,因为Entity Framework Code First中还没有枚举支持.无论如何,我注意到有一个System.ComponentModel.DataAnnotations被调用的属性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; }
//........
Run Code Online (Sandbox Code Playgroud)
视图:
@Html.ValidationMessageFor(model => model.CuriousQuestion)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8144 次 |
| 最近记录: |