【问题标题】:Html.LabelFor does not use Name from DisplayAttributeHtml.LabelFor 不使用来自 DisplayAttribute 的名称
【发布时间】:2011-09-18 18:35:42
【问题描述】:

我有一个这样的模型

[MetadataType(typeof(PageMetadataMetadata))]
public class PageMetadata : IPageMetadata {
    public virtual string Name { get; set; }
}

和我这样的元数据类

internal class PageMetadataMetadata {
    [Display(Name = "Title", Order = 10, Prompt = "My awesome page")]
    [Required(ErrorMessage = "Name_Required")]
    public virtual string Name { get; set; }
}

当我在视图中使用此模型时,我无法让它使用我的 DisplayAttribute 中的名称?

@Html.LabelFor(model => model.CurrentModel.Metadata.Name)

【问题讨论】:

    标签: asp.net-mvc-3 modelmetadata


    【解决方案1】:

    使用DisplayAttribute,您还必须设置ResourceType。如果您不想使用本地化,请尝试使用DisplayNameAttribute

    【讨论】:

    • 我知道本地化,但这里的问题是我必须使用 EditorForModel 从 displayattribute och displaynameattribute 获取正确的名称
    • 您是否尝试过设置模型中缺少的资源类型?发生了什么事?只有显示属性?
    • 我尝试过使用 resourcetype 和 dislayname 属性,但这些都不起作用,它仍然使用标签文本的属性名称
    • 试试看这篇关于ModelMetadataProviders的文章dotnetcurry.com/ShowArticle.aspx?ID=715
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 2012-03-15
    • 2015-08-01
    • 1970-01-01
    • 2012-12-06
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多