我编写了一个非常简单的MVC应用程序,它只显示一个Resource文件中的单个字符串。它在我的本地机器上工作得很好但是当我将项目部署到Web服务器时,我得到了错误。
CS0103:“资源”这个名称没有 存在于当前背景中
您只需10步即可轻松复制我正在做的事情!
创建新的MVC 2 Web应用程序。
(File-> New-> Project-> ASP.NET MVC 2 Web应用程序,对单元测试项目说不)
添加“App_GlobalResources”文件夹。
(右键单击项目并选择添加 - >添加ASP.NET文件夹 - > App_GlobalResources)
将资源文件添加到此文件夹。
(右键单击文件夹,然后选择添加 - >新项目...->资源文件。将其命名为字符串的.resx)
将单个字符串添加到资源表。
(名称=“HelloWorld”,值=“我本地化的Hello World!”)
设置资源文件的文件属性。
(单击文件Strings.resx并在属性窗口中设置Build Action =“Embedded Resource”和CustomTool = “PublicResXFileCodeGenerator”)
添加新控制器
(右键单击Controllers文件夹,然后选择添加 - >控制器...将其命名为HelloWorldController.cs)
添加视图
(将光标放在HelloWorldController.cs的Index方法中按CTRL-MV。使用默认值,包括View name =“Index” )
修改视图,使其显示资源文件中的字符串。
用
<h2><%: Resources.Strings.HelloWorld %></h2>
在本地运行以测试它是否有效。它应该是什么。
将其发布到网络服务器并访问网址“http://localhost/HelloWorld”
这是我在顶部描述的错误。
我认为我在ResX文件上设置的设置不正确,资源未发布到服务器。
非常感谢帮助。
谢谢!
答案 0 :(得分:15)
听起来App_GlobalResources文件夹与MVC没有合作。所以我将我的ResX文件移动到一个新文件夹
〜/ Resources / Strings /Strings.resx
这与设置文件属性的1个小改动一起 自定义工具命名空间 =资源
并解决了问题!