我想创建一个多语言mvc
网站,所以我一直在从资源文件中加载我的所有消息和标签,在我的验证中,我想从资源文件中显示我的消息但是我收到以下错误。
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
答案 0 :(得分:2)
Attribute parameters are restricted to constant values
也就是说,当将属性应用于某个东西时,参数必须是常量值,例如const primitives(string,int,float,bool,double等),枚举或类型。
例如:
[Required("This field is required.")]
public string Username { get; set; }
[Required(SomeObject.ErrorMessageStringProperty)]
public string Username { get; set; }
如果字符串不是const,则无法编译。
ValidationAttribute课程已经解决了这个问题。您可以提供ErrorMessage
和ErrorMessageResourceType
,而不是提供ErrorMessageResourceName
参数。然后使用这些const值来查找文化的相应错误消息。
e.g。
[Required(ErrorMessageResourceType = typeof(Resources.Errors), ErrorMessageResourceName="RequiredError")]
public string Username { get; set; }
How to localize ASP.NET MVC application?
Multiple languages in an ASP.NET MVC application?