我在这里束手无策。
在底部重现的步骤
我MyProj.Mvc
在 Visual Studio 2012 Update 3 中创建了一个 MVC 4 项目。
我按照这里的建议将我的放在项目下的GlobalResources.resx
一个Resources
文件夹中,以便它编译成 DLL。我在 中查看了生成的代码GlobalResources.resx.cs
,一切都是公开的。我可以从其他.cs
文件(例如HomeController.cs
)访问资源就好了。
在任何视图中,我都无法将MyProj.Mvc
命名空间置于当前上下文中。
例如,在任何 Razor 视图中,我都可以引用这样的资源:
@MyProj.Mvc.Resources.GlobalResources.AppName
但是,当我尝试执行以下操作时:
@Resources.GlobalResources.AppName
我得到一个错误。未Resources
找到命名空间。
我按照这里的建议将命名空间放在我的 ~/Views/Web.config 中:
<add namespace="MyProj.Mvc" />
而且,视图仍然无法识别Resources
命名空间。重建和/或重新启动 Visual Studio 不起作用。
“好吧,”我想,“去死吧,我只是@using
在页面顶部放一个声明,稍后再处理。”
@using MyProj.Mvc // put at the top of the page
而且,视图仍然无法识别Resources
命名空间。
所以请帮忙。帮助!我可能做错了什么,@using
在页面顶部放置一个语句仍然不会将命名空间纳入范围?
重现步骤:
我已经能够用全新的、干净的项目重现这一点。Visual Studio 2012 Update 3,创建一个新的 ASP.NET MVC 4 Web 应用程序,名为MyProj.Mvc
. 对于模板,我主要关注 Internet 应用程序,尽管我也在我的机器上使用 Empty 项目复制了它;选择 Internet 应用程序只是为了更好地匹配我所拥有的。在顶部_Layout.cshtml
,放@using MyProj.Mvc
. 在页面的其他地方,开始输入@Controllers.HomeController
。请注意,自动完成功能甚至不会尝试提供Controllers
命名空间,更不用说HomeController
.
现在它变得很奇怪:
所以,那失败了。不过,这里有一些东西。尝试将using
语句更改为@using MyProj.Mvc.Controllers
. 现在,返回并开始输入@HomeController
。有用!