Mia*_*Win 8 c# asp.net-mvc data-annotations asp.net-mvc-4
我有以下代码:
[Required(ErrorMessage = MessageModel.translateMessage("required")))]
[Display(Name= MessageModel.translateMessage("id"))]
public string user_id { get; set; }
Run Code Online (Sandbox Code Playgroud)
我试图使错误消息动态,但我在编译时得到错误:
"An attribute argument must be a constant expression , typeof expression or array creation expression of an attribute parameter type."
解决这个问题的任何方法?
ywm*_*ywm 11
首先,您创建一个Resource .resx文件,该文件将包含您的本地化字符串.
声明属性时,请设置ResourceType参数.这会导致Name,ShortName和Description参数用作资源键而不是值.
[Display(Name = "GenreName", ShortName = "GenreShortName", Description = "GenreDescription", ResourceType = typeof(MyResources))]
public string Genre { get; set; }
Run Code Online (Sandbox Code Playgroud)
错误消息显示“属性参数必须是常量表达式...”。
这意味着属性的参数DisplayName必须是常量表达式(例如字符串、整数等),或错误消息中列出的任何其他表达式类型。
如果你想本地化一个属性,那么你需要一个支持它的特性。如果你使用的是 ASP.Net 4,那么 DisplayAttribute 应该是这样的:
[Display(Name="ID",Resource=typeof(MessageModel.translateMessage("id")))]
public string user_id { get; set; }
Run Code Online (Sandbox Code Playgroud)
另请检查达林的这个答案
| 归档时间: |
|
| 查看次数: |
19228 次 |
| 最近记录: |