我有一个MVC3 Web应用程序,我正在使用.resx资源文件来查看我的所有视图内容。我将resx文件保存在与使用它们的视图相同的位置,但是,如果我将资源文件移动到同一项目中的另一个文件夹 ,我会收到此错误:
无法找到适合指定文化的任何资源或 中性文化。确保 “Application.Web.Views.Login.LoginStrings.resources”是正确的 在编译时嵌入或链接到程序集“Application.Web”,或 所需的所有卫星组件都是可装载和完全的 签名。
资源的自定义工具属性设置为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文件移动到项目中的其他位置并 bam 运行时错误:(
答案 0 :(得分:0)
代码示例有助于理解您要实现的目标。
一种方法是使用强类型的资源。在这种情况下,您必须将资源文件的访问修饰符更改为内部(在VS中打开.resx文件时在工具栏中)?
如果将其设置为internal(如果它位于不同的程序集中,则为public),将生成.resx文件的代码文件,您应该能够访问强类型的资源。
这样您可以通过以下方式访问资源:
ResourceFile.ResourceItem