CSharp - MVC本地化的[Display] 属性,但不只是名称

  显示原文与译文双语对照的内容
0 0

我一直试图本地化 ASP.NET MVC网站,我决定让资源文件存储我的字符串。 我有一个带有如下注释的模型:


 [Required(ErrorMessage ="Please enter your e-mail address")]
 [Display(Name ="E-mail address:", Prompt ="somename@mail.com")]
 public string EmailAddress { get; set; }

这是我的新资源 file:


Contact.resx
EmailName E-mail address:
EmailPrompt sample@mail.com
EmailReq Please enter your e-mail address

我想使用资源文件并将字符串从它中取出。 我设法使 [Required] 和 [Display] 工作,但仅适用于 NAME:


 [Required(ErrorMessageResourceType = typeof(Contact), ErrorMessageResourceName ="EmailReq")]
 [Display(ResourceType = typeof(Contact), Name ="EmailName")]
 public string EmailAddress { get; set; }

但如果我添加提示="EmailPrompt",它只是将"EmailPrompt"保存为字符串,而不是"sample@mail.com". 如何解决这个问题。

时间: 原作者:

0 0

我找到了解决问题的方法,在另一段代码中也是一个错误。 我通过反射得到了提示值。 通过 public 字段提示和 GetPrompt() 方法获取值是一个很大的区别:


DisplayAttribute attr = GetTheAttribute();
string firstVal = attr.Prompt;
string secondVal = attr.GetPrompt();

firstVal包含要在资源文件中查找的密钥的名称;资源的实际值用 GetPrompt ( ) 检索,如secondVal中所示。

原作者:
...