0

我正在使用App_GlobalResourcesmvc3 模型中存储在带有 DataAnnotations 的文件夹中的 resx 文件的翻译。

它适用于 a Required DataAnnotation,但如果我尝试使用Display DataAnnotation.

这是我的代码:

[Required(ErrorMessageResourceType = typeof(Resources.Error), ErrorMessageResourceName = "RequiredClientName")]
[Display(Prompt = "ClientName", ResourceType = typeof(Resources.Front))]
public string Name { get; set; }

System.InvalidOperationException只有当我把Display DataAnnotation

这是完整的例外(对不起,我没有找到用英文翻译它的方法):

Impossible de récupérer la propriété 'Prompt' en raison de l'échec de la localisation。Le type 'Resources.Front' n'est pas public ou ne contient pas une propriété de chaîne statique publique avec le nom 'FooterAbout'。

描述 : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle。Contrôlez la trace de la pour pour plus d'informations sur l'erreur et son origine dans le code。

异常详细信息:System.InvalidOperationException: Impossible de récupérer la propriété 'Prompt' en raison de l'échec de la localisation。Le type 'Resources.Front' n'est pas public ou ne contient pas une propriété de chaîne statique publique avec le nom 'FooterAbout'。

我使用的模型存储在Area. 此外,我可以从_Layout或 中访问我的 resx 文件中的值Required DataAnnotation

感谢您的帮助

弗洛伦特。

4

1 回答 1

1

错误消息非常不言自明(我正在为该网站的非法语观众翻译):

无法检索属性“提示”,因为本地化失败。类型“Resources.Front”不是公共的或不包含名为“ClientName”的公共静态字符串属性。

您应该通过在 RESX 文件的属性中将 Custom ToolPublicResXFileCodeGenerator和 Build Action设置为来公开资源文件:Embedded Resource

在此处输入图像描述

原因是默认情况下,生成的强类型类是内部的,并且在运行时编译成单独的程序集的 Razor 视图无法访问。

于 2012-07-05T16:25:26.880 回答