2012-07-05 29 views
0

我正在使用mvc3模型中的DataAnnotations存儲在App_GlobalResources文件夾中的resx文件的翻譯。mvc3提示System.InvalidOperationException

它可以很好地與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

以下是完整的異常(我很抱歉,我沒有找到一個方法來翻譯它只是拋出在英語):

不可能去récupérer拉propriété '提示' 連接存在的DE L'échec德 拉定位。 Le type'Resources.Front'n'est pas public ou ne contient pastil unepropriétédechaînestatique publique avec le nom 'FooterAbout'。

描述:沒有例外的情況下,您可以在 的網站上找到它。 Contrôlezla trace de la pile pour plus d'informations sur l'erreur et son origine dans le code。

細節DE L'異常:System.InvalidOperationException:不可能 德récupérer拉propriété '提示' 連接存在的DE L'échec德拉 定位。 Le type'Resources.Front'n'est pas public ou ne contient pastil unepropriétédechaînestatique publique avec le nom 'FooterAbout'。

我正在使用的模型存儲在Area中。 另外,我可以在我的resx文件的訪問值從_Layout,或在Required DataAnnotation

謝謝您的幫助

弗洛朗。

回答

1

的錯誤信息是非常自我解釋(我正在翻譯的網站的非講法語的觀衆):

無法檢索屬性「提示」因本地化失敗。類型 'Resources.Front'未公開或不包含公共靜態 名稱爲'ClientName'的字符串屬性。

你應該在你的RESX文件的屬性自定義工具PublicResXFileCodeGenerator和生成操作設置爲Embedded Resource使資源文件public:

enter image description here

的原因是因爲默認情況下,生成的強類型類是內部的,並且Razor視圖無法訪問,這些視圖在運行時被編譯到單獨的程序集中。

相關問題