如何使用ResX资源发布/部署MVC项目?

Jus*_*tin 6 deployment asp.net-mvc localization resx

我编写了一个非常简单的MVC应用程序,它只显示一个Resource文件中的单个字符串.它在我的本地机器上工作得很好但是当我将项目部署到Web服务器时,我得到了错误.

CS0103:当前上下文中不存在名称"资源"

您只需10步即可轻松复制我正在做的事情!

  1. 创建一个新的MVC 2 Web应用程序.
    (文件 - >新建 - >项目 - > ASP.NET MVC 2 Web应用程序,对单元测试项目说不

  2. 添加"App_GlobalResources"文件夹.
    (右键单击该项目并选择Add-> Add ASP.NET Folder-> App_GlobalResources)

  3. 将资源文件添加到此文件夹.
    (右键单击文件夹并选择Add-> New Item ...-> Resources File.将其命名为Strings.resx)

  4. 将单个字符串添加到Resource表.
    (Name ="HelloWorld",Value ="我本地化的Hello World!")

  5. 设置资源文件的文件属性.
    (单击文件Strings.resx并在属性窗口中设置Build Action ="Embedded Resource"和CustomTool ="PublicResXFileCodeGenerator")

  6. 添加一个新的Controller
    (右键单击Controllers文件夹并选择Add-> Controller ...将其命名为HelloWorldController.cs)

  7. 添加视图
    (将光标放在HelloWorldController.cs的Index方法中按CTRL-MV.使用默认值,包括View name ="Index")

  8. 修改视图,以便它显示资源文件中的字符串.
    用以下内容替换MainContent占位符的内容

    <h2><%: Resources.Strings.HelloWorld %></h2>
    
    Run Code Online (Sandbox Code Playgroud)
  9. 在本地运行以测试它是否有效. 它应该是什么.

  10. 将其发布到Web服务器并访问URL" http:// localhost/HelloWorld "

这是我在顶部描述的错误.

我想我放在ResX文件上的设置不正确,资源没有发布到服务器.

非常感谢帮助.

谢谢!

Jus*_*tin 15

啊哈!弄清楚了.在本文的大部分内容中:http:
//odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

听起来像App_GlobalResources文件夹不与MVC合作.所以我将我的ResX文件移动到一个新文件夹
〜/ Resources/Strings /Strings.resx

这与一个小的更改一起设置文件属性
自定义工具名称空间 =资源

并解决了问题!