【发布时间】:2012-06-12 16:18:40
【问题描述】:
我刚刚创建了一个 ASP.NET MVC 4 项目并使用 Visual Studio 2012 RC 为 Index 和 Create 操作创建了控制器和 Razor 视图。
当我开始运行应用程序并浏览到Create 视图时,显示以下错误:
编译器错误消息:CS0103:名称“脚本”不存在于 当前上下文
问题是自动添加到视图底部的以下代码:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
为什么脚本不存在?
我查看了 Assembly System.Web.Mvc.dll, v4.0.0.0 中的基本网页类
我可以看到以下可用的辅助属性:
- 阿贾克斯
- HTML
- 网址
但没有任何名称为脚本。
有什么想法吗?
编辑:
我的 Web.config 文件如下所示(与 Visual Studio 创建的相同):
<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 助手:
然而,刚刚将 Visual Studio 2012 RC 安装到全新的 Windows 8 安装中,我仍然无法使用 @Scripts,即使 Visual Studio 将其添加到生成的视图中!
解决方案如下。
我不知道如何关闭它,因为最终更新似乎解决了这个问题。我仔细检查了我是否使用新项目执行了全新安装。但是在经过各种更新并且没有明显的手动干预之后,我所做的同样失败的项目现在可以正常工作了。感谢所有的想法,但当时肯定有问题;)
【问题讨论】:
-
已经尝试在 Web.config 中添加?
<system.web.webPages.razor> <pages pageBaseType=""> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> etc... </pages> -
我已从 Web.config 添加了该部分,但我没有更改该文件中的任何内容。
-
您的意思是“My Views\Web.config”文件,而不是应用根 web.config。无论如何,它是不正确的并且缺少
。您是否在 RC 之前安装了 VS12 Beta?什么win8版本? -
@RickAndMSFT 我从 Release Preview ISO 进行了干净的 Win8 安装,并从 VS 2012 RC ISO 进行了安装,以确保它没有版本冲突。
-
@RickAndMSFT My Views\Web.config 将错过区域中的任何视图
标签: asp.net-mvc razor