我有一個名爲Constants.resx的資源文件,其中包含一些字符串。從控制器我試圖訪問一個新的字符串,我剛剛添加到Constants.resx文件,但它不被編譯器識別(智能感知不顯示我剛剛添加的新字符串),當然,當我鍵入它,顯示一個錯誤。無法從mvc 4控制器訪問資源文件中的密鑰
在控制器標題下方行我已經加入:
using Resources;
,並進入到新的弦剛添加我做到以下幾點:
Resources.Constants.NewString
我訪問其他字符串常量。 resx文件使用相同的方法,沒有問題,它們被正確識別,但不是這個新的。
任何想法?
已更新: 我的mvc 4應用程序的資源文件是通過從App_GlobalResources上下文菜單中選擇「添加>新項目」並最終選擇「資源文件」添加的。
我的資源文件屬性是:
Build action: Content
Copy to Output Directory: Do not copy
Custom Tool: GlobalResourceProxyGenerator
Custom Tool Namespace: (left blank)
而且我使用Visual Studio 2010 Express版本。
我可以看到編譯器發出警告,說它無法在系統中找到自定義工具'GlobalResourceProxyGenerator'。
如果你看到資源中的其他字符串正在嘗試清理和重建你的項目 –
@MattBodily它不適用於我。我不得不手動添加到Constants.resx.cs。然後它工作。似乎每次我向資源文件添加一個新字符串時,其Constants.resx.cs都不會被重新生成。爲什麼? – user1624552
似乎Visual Studio 2010 express不支持GlobalResourceProxyGenerator,必須將其更改爲ResXFileCodeGenerator(如果需要內部引用)或PublicResXFileCodeGenerator(如果需要公共引用)。然後使用App_GlobalResources.Constants.MyKey或只有使用MyProject.App_GlobalResources的情況下訪問關鍵字符串或使用Constants.MyKey。請參閱下面的鏈接:http://www.mojoportal.com/Forums/Thread.aspx?pageid=5&t=6062~-1 – user1624552