首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DisplayAttribute ResourceType找不到资源

DisplayAttribute ResourceType找不到资源
EN

Stack Overflow用户
提问于 2021-05-02 21:46:18
回答 1查看 221关注 0票数 1

我希望使用资源以不同的语言显示名称。在下面的代码中有错误:

代码语言:javascript
复制
public class ChangePassword
{
    [Display(Name = "CurrentPassword", ResourceType = typeof(SheardLocalization))]
    public string CurrentPassword { get; set; }
    [Display(Name = "NewPassword", ResourceType = typeof(SheardLocalization))]
    public string NewPassword { get; set; }
}

InvalidOperationException:无法检索属性“名称”,因为本地化失败。键入“CyengTeam.App.Models.SheardLocalization”不是公共的,或者不包含名称为“CurrentPassword”的公共静态字符串属性。

在视图(.cshtml)中,我可以使用@inject IHtmlLocalizer<SheardLocalization> localization;来处理资源,并且没有任何问题。但在课堂上有错误。

EN

回答 1

Stack Overflow用户

发布于 2021-05-03 05:14:05

您可以使用

代码语言:javascript
复制
[Required (ErrorMessageResourceName="SomeText", ErrorMessageResourceType=typeof(Resources.Resource))]

这个问题发生在System.ComponentModel.DataAnnotations属性中。DisplayAttribute检查Type.IsVisible属性,而ValidationAttribute(RequiredAttribute从它们继承)不会。因此,您需要将资源类和属性更改为公共类以使其正常工作。您可以阅读更多的这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67361385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档