【问题标题】:Why doesn't the Add View List Scaffolding wizard use the "DisplayName" data annotation为什么添加视图列表脚手架向导不使用“DisplayName”数据注释
【发布时间】:2011-09-13 02:28:21
【问题描述】:

所以我花了很多时间用Required、StringLength、Range、Display等注释我的域实体。

然后我开始创建具有正确域实体集的强类型视图。

我尝试的第一个视图是我的域实体的 List Scaffolded 视图,它大量应用了 Display(Name="foo") 属性。创建视图时,表头仍然使用属性名,而不是我设置的显示名。

带有 April Tools 更新的 MVC3 是否会忽略这些数据注释?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    假设您使用的是MvcScaffolding,那么是的,这些脚手架模板会忽略元数据。

    但如果您关注this article,您可以创建自己的模板。完成后,您可以修改自己的模板。

    在模板中寻找这部分

    <thead>
        <tr>
            <th></th>
    <#
    List<ModelProperty> properties = GetModelProperties(Model.ViewDataType, true);
    foreach (ModelProperty property in properties) {
    if (!property.IsPrimaryKey && !property.IsForeignKey && !property.IsEnumerable) {
    #>
            <th><#=  property.Name #></th>
    <#
    }
    }
    #>
        </tr>
    </thead>
    

    &lt;th&gt;&lt;#= property.Name #&gt;&lt;/th&gt; 更改为&lt;th&gt;@Html.LabelFor(x =&gt; x.First().&lt;#= property.Name #&gt;)&lt;/th&gt;,它将改用模型元数据显示名称。请注意,这只是为了快速说明如何根据索引视图的模板(它有一个 IEnumerable 作为模型)来处理这个问题。

    【讨论】:

    • 好吧,是吗? :-) 就是使用 mvc 脚手架。我所拥有的是 VS2010 w SP1 并为 MVC 安装了“四月更新”。我没有安装其他任何东西,只是使用在解决方案资源管理器中选择“添加视图”时出现的向导。
    • 我刚刚检查过了。确实是 MvcScaffolding。检查here
    • 是的,你是正确的——安装更新确实意味着我正在使用“旧”的 MVC 脚手架项目——它现在内置于 MVC 安装程序中。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 2011-07-12
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    相关资源
    最近更新 更多