首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC3中的MetadataType错误?

MVC3中的MetadataType错误?
EN

Stack Overflow用户
提问于 2012-03-15 00:02:53
回答 2查看 488关注 0票数 1

我绞尽脑汁使用MetadataType /伙伴类来让DisplayName / Display属性在MVC3中的实体框架类上工作。在我的视图中,如果我使用@Html.LabelFor,我仍然只获得属性名称,而不是显示属性。我的用例和设置非常简单:

代码语言:javascript
复制
[MetadataType(typeof(ProductMetadata))]
public partial class Product
{
}

public class ProductMetadata
{
    [Display(Name = "Why does this not work????")]
    object ProductName { get; set; }

    [Display(Name = "Discontinued Date")]
    object DiscontinuedDate { get; set; }
}

如果我使用像LabelFor这样的Html helper:

代码语言:javascript
复制
@Html.LabelFor(m => m.First().ProductName)

我仍然只是在我的输出中获取属性名称。即使我在自定义Html扩展中以编程方式完成此操作,我也只能获得属性名称,而不是extected属性值:

代码语言:javascript
复制
ModelMetadata.FromLambdaExpression(expression, html.ViewData).DisplayName

任何关于这方面的想法或帮助都将不胜感激。我是不是漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-15 00:21:54

它不起作用,因为属性在ProductMetadata类中是私有的。将其更改为

代码语言:javascript
复制
public class ProductMetadata
{
    [Display(Name = "It works!!!")]
    public object ProductName { get; set; }

    [Display(Name = "Discontinued Date")]
    public object DiscontinuedDate { get; set; }
}
票数 1
EN

Stack Overflow用户

发布于 2012-03-15 00:16:03

尝试使用DisplayNameAttribute

代码语言:javascript
复制
[DisplayName("Propertyname")]
public string PropertyName {get;set;}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9705530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档