当前上下文中不存在 MVC 样式和脚本
Posted
技术标签:
【中文标题】当前上下文中不存在 MVC 样式和脚本【英文标题】:MVC Styles and Scripts do not exist in the current context 【发布时间】:2014-07-04 08:19:27 【问题描述】:作为学习练习,我创建了一个空白的 MVC4 应用程序,并正在用它构建一个博客类型的网站。
我知道这可能不是最好的主意...我已将 Content
和 Views\Shared
文件夹从我使用默认内容创建的另一个文件夹复制到我的博客项目中,但以下几行给我错误:
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
我的 _Layout.cshtml 文件中都有红色下划线,错误是:
名称在当前上下文中不存在
所以我回到我的“默认”项目并通过将鼠标悬停在它们上来检查它们的来源。工具提示说
class System.Web.Optimization.Styles
class System.Web.Optimization.Scripts
所以我按照this question 安装了 Web 优化框架,但它并没有解决问题。
项目全部构建,但没有应用任何样式,我 100% 确定脚本控制的任何东西也不起作用...
谁能帮我解决这个问题?
【问题讨论】:
确保您已经在 BundleConfig.cs 文件中定义了这些包,例如 bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css") ); 确保在您的 Views 文件夹web.config
文件中也包含 <add namespace="System.Web.Optimization"/>
。可能需要关闭并再次打开您的解决方案,以便 Visual Studio 的智能感知来获取它。
@malkam 谢谢!必须更改那里的命名空间才能正常工作,但我还必须按照Dom
的建议重新加载解决方案
@malkam 我根据我上次的评论进行了排序,但现在 被呈现为<link href="/Content/css" rel="stylesheet"/>
...我已经对照未修改的“Internet 应用程序”模板对其进行了检查我能看到的一切看起来都一模一样
原来我需要在 Global.asax 文件中注册 Bundle
【参考方案1】:
将<add namespace="System.Web.Optimization" />
标签添加到Views文件夹内的web.config
像这样:
> <system.web.webPages.razor>
> <host factoryType= ... />
> <pages pageBaseType="System.Web.Mvc.WebViewPage">
> <namespaces>
> <add namespace="System.Web.Mvc" />
> <add namespace="System.Web.Mvc.Ajax" />
> <add namespace="System.Web.Mvc.Html" />
> <add namespace="System.Web.Routing" />
> <add namespace="System.Web.Optimization" />
> </namespaces>
> </pages>
> </system.web.webPages.razor>
【讨论】:
以上是关于当前上下文中不存在 MVC 样式和脚本的主要内容,如果未能解决你的问题,请参考以下文章