首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComponentModel反射显示资源

ComponentModel反射显示资源
EN

Stack Overflow用户
提问于 2011-07-09 20:11:49
回答 1查看 368关注 0票数 1

我正在本地化我的asp.net Mvc应用。字符串放在资源文件中。我正在用System.ComponentModel.DataAnnotations.DisplayAttribute属性装饰我的模型,例如:

代码语言:javascript
复制
public class User
{
    public virtual Guid Id { get; set; }

    [Display(ResourceType = typeof(ModelRes.User), Name = "LogonName")]
    public virtual string LogonName { get; set; }
    [Display(ResourceType = typeof(ModelRes.User), Name = "Password")]
    public virtual string Password { get; set; }
}

每个模型(类)都有一个资源文件,User.resx如下所示:

代码语言:javascript
复制
LogonName | "Logon name"
Password  | "Password"

现在想像一下,对于许多属性,您得到了想法。我想要做的是:

代码语言:javascript
复制
[CustomDisplay(typeof(ModelRes.User))]
public class User
{
    public virtual Guid Id { get; set; }

    public virtual string LogonName { get; set; }
    public virtual string Password { get; set; }
}

并且仍然可以在我的(剃刀)视图中使用:

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

有实现这样的东西的经验吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-09 20:52:02

您必须编写一个自定义的ModelMetadataProvider

然后,您必须使用您的自定义属性和属性名称设置ModelMetadata变量的DisplayName属性。

以下是一些示例/教程

ASP.NET MVC 3 Service Location, Part 7: Model Metadata

Customizing ASP.NET MVC 2 Metadata and Validation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6634653

复制
相关文章

相似问题

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