2014-02-11 75 views
0

訪問資源文件獲取錯誤從MVC控制器訪問的資源文件的字符串(與視圖工作文件)MVC 4誤差從控制器

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "TempNameSpace.App_GlobalResources.Resource_EN_US.resources" was correctly embedded or linked into assembly "TempNameSpace" at compile time, or that all the satellite assemblies required are loadable and fully signed. 

我已經做了
1.資源文件構建行動:從內容到嵌入式資源
結果:發佈不包含其中的資源文件。與名Resource.resx
結果
2.增加新的資源文件:同樣的錯誤

解決方案層次
1.解決方案包含4個項目,兩次與資源文件(App_GlobalResources文件夾下Resource.resx和Resource_EN_US)
2.設計師對Resource_EN_US包含正確的命名空間

global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TempNameSpace.App_GlobalResources.Resource_EN_US", typeof(Resource_EN_US).Assembly); 
+0

你是否已將所有資源文件中的* Access Modifier *更改爲Public? – Binke

+0

是的,我可以訪問資源文件字符串@ Resources.Resource_EN_US.WaterMarkEmail在視圖 – RollerCosta

回答

0

在我的項目中,我使用的資源一個單獨的項目。我已將所有資源文件構建動作屬性設置爲嵌入式資源。 關於資源項目的參考,對於資源項目,我已將複製本地設置爲True。 (右擊參考和選擇屬性

如果你有你的web項目中的資源文件,我認爲,隨着複製本地相應的財產應該複製到輸出目錄(也可以通過右擊並Properties)。

編輯: 我看到在您的評論你說,你訪問該文件爲Resource.Resource_EN_US.WaterMarkEmail但這並不是訪問文件的正確方法。您應該將它們作爲單個文件訪問:資源。 財產。 我的文件命名爲:Standard.resx,Standard.en.resx,Standard.no.resx等等。要訪問它們,我可以使用Standard。 物業。資源文件將會模仿,但只有當你給他們有效的名字。如果您可以單獨訪問所有資源文件,那麼您還沒有使用正確的命名約定。

我推薦使用ResourceHelper來使用ResourceManager來訪問你需要的屬性。

+0

Right Binke,我們沒有使用正確的命名約定,因爲這是以前實現的,現在我不想改變太多,但是,這是需要完成的,我會盡快完成。 – RollerCosta