首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 4@脚本“不存在”

MVC 4@脚本“不存在”
EN

Stack Overflow用户
提问于 2012-06-08 15:23:08
回答 23查看 180.6K关注 0票数 201

我刚刚创建了一个ASP.NET MVC 4项目,并使用VisualStudio2012RC为IndexCreate操作创建了Controller视图。

当我运行应用程序并浏览到Create视图时,显示了以下错误:

编译器错误消息: CS0103:名称“脚本”在当前上下文中不存在

问题是以下代码是自动添加到视图底部的:

代码语言:javascript
复制
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

为什么脚本不存在?

我查看了程序集System.Web.Mvc.dll中的基本网页类,v4.0.0.0

我可以看到以下可用的助手属性:

  • Ajax
  • Html
  • Url

但没有什么名字叫脚本。

有什么想法吗?

编辑:

我的Web.config文件如下所示(未与Visual创建的文件相关联):

代码语言:javascript
复制
  <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助手的博客:

  • 博客
  • Codebetter.com

然而,刚刚将VisualStudio2012RC安装到一个新的Windows8安装上,我仍然无法使用@Scripts,即使Visual将它添加到生成的视图中!

解决方案如下所示.

我不知道如何结束这个问题,因为最终更新似乎解决了这个问题。我再次检查我已经执行了一个干净的安装,使用一个新项目。但同样的失败的项目,我使现在工作良好,经过各种更新,没有明显的人工干预。谢谢你所有的想法,但当时肯定有问题;)

EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2013-02-10 16:18:19

这里的关键是添加

代码语言:javascript
复制
 <add namespace="System.Web.Optimization" /> 

到两个web.config文件。我的场景是,我在项目和主/根web.config中都有web.config引用,但是@Script仍然不能正常工作。您需要将命名空间引用添加到视图web.config文件中,以使其工作。

更新:

由于MVC 4的发布,System.Web.Optimization现在已经过时了。如果从空白解决方案开始,则需要安装以下nuget包:

代码语言:javascript
复制
Install-Package Microsoft.AspNet.Web.Optimization

您仍然需要在您的System.Web.Optimization文件中引用web.config。有关更多信息,请参见本主题:

如何为MVC-3转换为-4应用程序添加对System.Web.Optimization的引用

正如许多人所指出的,在完成上述步骤之后,可能需要重新启动VS来完成这项工作。

票数 270
EN

Stack Overflow用户

发布于 2013-10-14 17:39:36

上面有一个小台阶,我在另一个帖子上找到了。加后

代码语言:javascript
复制
<add namespace="System.Web.Optimization" />

对于您的~/Views/web.config命名空间,关闭并重新打开Visual .,这是我必须做的工作。

票数 48
EN

Stack Overflow用户

发布于 2012-06-15 18:06:25

我正在使用区域,并且刚刚遇到这个问题,我只是将名称空间从根web.config复制到了areas。配置,现在起作用了!!

代码语言:javascript
复制
    <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" />
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10951669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档