资源中的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))]}
定义属性的ResourceType,以便查找资源
定义用于资源键的属性的名称,在C#6.0之后,您可以使用
nameof
强类型支持而不是硬编码键。在控制器中设置当前线程的文化。
Resource.Culture = CultureInfo.GetCultureInfo("zh-CN");
将资源的可访问性设置为public
像这样在cshtml中显示标签
@Html.DisplayNameFor(model => model.Age)
- 3 回答
- 0 关注
- 1284 浏览
添加回答
举报
0/150
提交
取消