为了账号安全,请及时绑定邮箱和手机立即绑定

资源中的DisplayName属性?

资源中的DisplayName属性?

守候你守候我 2019-08-24 18:14:56
资源中的DisplayName属性?我有一个本地化的应用程序,我想知道是否可以DisplayName从资源中设置某个模型属性。我想做这样的事情:public class MyModel {   [Required]   [DisplayName(Resources.Resources.labelForName)]   public string name{ get; set; }}但是我不能这样,因为编译器说:“属性参数必须是常量表达式,typeof表达式或属性参数类型的数组创建表达式”:(有没有解决方法?我手动输出标签,但我需要这些用于验证器输出!
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

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))]}
  1. 定义属性的ResourceType,以便查找资源

  2. 定义用于资源键的属性的名称,在C#6.0之后,您可以使用nameof强类型支持而不是硬编码键。

  3. 在控制器中设置当前线程的文化。

Resource.Culture = CultureInfo.GetCultureInfo("zh-CN");

  1. 将资源的可访问性设置为public

  2. 像这样在cshtml中显示标签

@Html.DisplayNameFor(model => model.Age)


查看完整回答
反对 回复 2019-08-24
  • 3 回答
  • 0 关注
  • 1252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信