Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc EnumDataType属性在ASP.NET MVC中的作用是什么?_Asp.net Mvc_Entity Framework_Asp.net Mvc 3_Ef Code First_Entity Framework 4.1 - Fatal编程技术网

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)