我刚刚创建了一个ASP.NET MVC 4项目,并使用VisualStudio2012RC为Index和Create操作创建了Controller视图。
当我运行应用程序并浏览到Create视图时,显示了以下错误:
编译器错误消息: CS0103:名称“脚本”在当前上下文中不存在
问题是以下代码是自动添加到视图底部的:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}为什么脚本不存在?
我查看了程序集System.Web.Mvc.dll中的基本网页类,v4.0.0.0
我可以看到以下可用的助手属性:
但没有什么名字叫脚本。
有什么想法吗?
编辑:
我的Web.config文件如下所示(未与Visual创建的文件相关联):
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<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" />
</namespaces>
</pages>
</system.web.webPages.razor>编辑#2:
人们正在写关于使用@Scripts助手的博客:
然而,刚刚将VisualStudio2012RC安装到一个新的Windows8安装上,我仍然无法使用@Scripts,即使Visual将它添加到生成的视图中!
解决方案如下所示.
我不知道如何结束这个问题,因为最终更新似乎解决了这个问题。我再次检查我已经执行了一个干净的安装,使用一个新项目。但同样的失败的项目,我使现在工作良好,经过各种更新,没有明显的人工干预。谢谢你所有的想法,但当时肯定有问题;)
发布于 2013-02-10 16:18:19
这里的关键是添加
<add namespace="System.Web.Optimization" /> 到两个web.config文件。我的场景是,我在项目和主/根web.config中都有web.config引用,但是@Script仍然不能正常工作。您需要将命名空间引用添加到视图web.config文件中,以使其工作。
更新:
由于MVC 4的发布,System.Web.Optimization现在已经过时了。如果从空白解决方案开始,则需要安装以下nuget包:
Install-Package Microsoft.AspNet.Web.Optimization您仍然需要在您的System.Web.Optimization文件中引用web.config。有关更多信息,请参见本主题:
如何为MVC-3转换为-4应用程序添加对System.Web.Optimization的引用
正如许多人所指出的,在完成上述步骤之后,可能需要重新启动VS来完成这项工作。
发布于 2013-10-14 17:39:36
上面有一个小台阶,我在另一个帖子上找到了。加后
<add namespace="System.Web.Optimization" />对于您的~/Views/web.config命名空间,关闭并重新打开Visual .,这是我必须做的工作。
发布于 2012-06-15 18:06:25
我正在使用区域,并且刚刚遇到这个问题,我只是将名称空间从根web.config复制到了areas。配置,现在起作用了!!
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />https://stackoverflow.com/questions/10951669
复制相似问题