2011-11-10 47 views
1

我有一個MVC3 Web應用程序,並且我爲所有視圖內容使用了.resx資源文件。我保持RESX文件在同一位置的觀點是使用他們,但是,如果我在同一個項目資源文件移動到另一個文件夾,我得到這個錯誤:.NET資源文件只有在與MVC視圖位於同一文件夾時才能成功引用

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

定製該資源的工具屬性設置爲PublicResXFileCodeGenerator,構建操作設置爲Embedded Resource,所以我不確定它可能是什麼。這是我第一次使用resx文件,所以任何幫助將不勝感激。

這是我如何使用資源類的例子:

<ul class="itemised-list"> 
     <li class="italic"> 
      @LoginStrings.Info_Login 
     </li> 
     <li> 
      <label>@SharedStrings.Account_Username</label> 
      @Html.TextBoxFor(m => m.Username) 
      @Html.ValidationMessageFor(m => m.Username) 
     </li> 
     <li> 
      <label>@SharedStrings.Account_Password</label> 
      @Html.PasswordFor(m => m.Password) 
      @Html.ValidationMessageFor(m => m.Password) 
     </li> 
     <li> 
      <input type="submit" value="@LoginStrings.Btn_Login" class="button" /> 
     </li> 
</ul> 

正如你所看到的,非常標準,而這一直一直工作。然後,我的RESX文件移動到項目中的不同位置,巴姆運行時錯誤:(

回答

0

一個代碼示例將有很大的幫助,瞭解你想要達到的目的。

一種方法是使用強類型的資源。在這種情況下,你將有你的資源文件的訪問修飾符更改爲內部(在工具欄,當你打開VS .resx文件)?

enter image description here

如果設置它到內部(公衆,如果它是不同的ent彙編),將生成.resx文件的代碼文件,您應該可以訪問強類型的資源。

這種方式,您可以訪問資源的方式如下:

ResourceFile.ResourceItem 
+0

訪問修飾符設置爲公開,爲我的默認的資源文件,並生成任何區域的資源文件沒有代碼,所以它不能是,無論如何tho – jcvandan

+0

正如我上面提到的,代碼示例將有助於理解爲什麼你遇到這些問題。你目前如何訪問資源? – adini

+0

實際上沒有任何代碼可以顯示,我只是按照上面顯示的方式執行,在視圖中我只引用資源類,問題是當資源文件位於Views文件夾中時它工作正常,但如果我將它們移動到其他地方,則會失敗並顯示上述消息。真的很奇怪,它必須與複製資源文件有關 – jcvandan

相關問題