我一直在尝试本地化我的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; }
这是我的新资源文件:
Contact.resx
EmailName E-mail address:
EmailPrompt sample@mail.com
EmailReq Please enter your e-mail address
我想使用资源文件并从中获取字符串。我设法使它适用于[必需]和[显示],但只是为了名称:
[Required(ErrorMessageResourceType = typeof(Contact), ErrorMessageResourceName = "EmailReq")]
[Display(ResourceType = typeof(Contact), Name = "EmailName")]
public string EmailAddress { get; set; }
但提示呢?如果我添加提示=" EmailPrompt"它只是保存" EmailPrompt"作为字符串,而不是" sample@mail.com"。我该如何解决这个问题?
答案 0 :(得分:0)
我找到了解决问题的方法,但在另一段代码中却出了问题。我通过反思得到了提示值。通过公共字段Prompt和GetPrompt()方法获取值是一个很大的不同:
DisplayAttribute attr = GetTheAttribute();
string firstVal = attr.Prompt;
string secondVal = attr.GetPrompt();
firstVal包含要在资源文件中查找的密钥的名称;使用GetPrompt()检索资源的实际值,如secondVal。