资源中的DisplayName属性?

资源中的DisplayName属性?

我有一个本地化的应用程序,我想知道是否可以DisplayName从资源中设置某个模型属性。

我想做这样的事情:

public class MyModel {
  [Required]
  [DisplayName(Resources.Resources.labelForName)]
  public string name{ get; set; }}

但是我不能这样,因为编译器说:“属性参数必须是常量表达式,typeof表达式或属性参数类型的数组创建表达式”:(

有没有解决方法?我手动输出标签,但我需要这些用于验证器输出!


守候你守候我
浏览 1255回答 3
3回答

慕莱坞森

public class Person{     // Before C# 6.0     [Display(Name = "Age", ResourceType = typeof(Testi18n.Resource))]     public string Age { get; set; }     // After C# 6.0     // [Display(Name = nameof(Resource.Age), ResourceType = typeof(Resource))]}定义属性的ResourceType,以便查找资源定义用于资源键的属性的名称,在C#6.0之后,您可以使用nameof强类型支持而不是硬编码键。在控制器中设置当前线程的文化。Resource.Culture = CultureInfo.GetCultureInfo("zh-CN");将资源的可访问性设置为public像这样在cshtml中显示标签@Html.DisplayNameFor(model => model.Age)
打开App,查看更多内容
随时随地看视频慕课网APP