当前位置: 首页 > 知识库问答 >
问题:

MVC 4@Scripts“不存在”

王棋
2023-03-14

我刚刚创建了一个ASP.NET MVC 4项目,并使用Visual Studio 2012 RC为索引创建操作创建了一个控制器和Razor视图。

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

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

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

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

为什么脚本不存在?

我查看了Assembly System.Web.mvc.dll,V4.0.0.0中的基本Web Page类

我可以看到以下可用的帮助程序属性:

  • Ajax
  • HTML
  • URL

但没有命名脚本。

有什么想法吗?

编辑:

我的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帮助程序的博客:

  • Scott HANSELMAN博客
  • codebetter.com

虽然Visual Studio将@scripts添加到生成的视图中,但我刚刚将Visual Studio 2012 RC安装到新的Windows 8安装中,仍然无法使用它!

解决办法如下。

我不确定如何关闭这个,因为最后一个更新似乎解决了这个问题。我仔细检查了一下,我使用了一个新的项目,执行了一个干净的安装。但同样的失败的项目,我曾经做过,现在工作良好,经过各种更新,没有明显的人工干预。感谢所有的想法,但当时肯定有问题;)

共有2个答案

叶嘉颖
2023-03-14

@styles@scriptssystem.web.optimization库提供的两个新帮助程序。顾名思义,它们分别捆绑和缩小了CSS和JavaScript文件或资源。

尝试通过@using指令或通过web.config包含命名空间system.web.optimization

http://ofps.oreilly.com/titles/9781449320317/ch_clientoptimization.html#bundlingandminification

更新

Microsoft已将绑定/缩放移动到一个名为Microsoft.aspnet.web.optimization的单独包中。您可以从NuGet下载程序集。

这篇文章对你有用。

湛鸿
2023-03-14

这里的关键是添加

 <add namespace="System.Web.Optimization" /> 

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

更新:

由于MVC4system.web.optimization的发布已经过时。如果您开始使用空白解决方案,则需要安装以下nuget软件包:

Install-Package Microsoft.AspNet.Web.Optimization

您仍然需要在web.config文件中引用system.web.optimization。有关详细信息,请参阅本主题:

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

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

 类似资料:
  • 问题内容: 关于SO与Ajax.BeginForm的问题有很多关于SO的问题,这些主题没有正确地使用返回的局部视图更新目标元素: mvc4 ajax更新同一页 ASP.NET MVC 4-Ajax.BeginForm和html5 MVC4(剃刀)-控制器是返回partialview但整个页面正在更新MVC4Ajax不会更新页面内的PartialView 但是,所有这些都可以通过手动写出jQuery

  • 一些辅助脚本,多数为外部 Makefile 调用。

  • scripts 启动 peer 节点的脚本。

  • Codeship Scripts A public collection of useful scripts for use on Codeship and similar tools. E.g. scripts to install specific versions of software not included by default on the build VMs. Deployment

  • The startup and shutdown scripts with their configuration files. SliTaz and startup SliTaz does not use a level of execution (runlevel), the system is initialized via a primary script and its main con

  • Content Scripts Contents Manifest Include和exclude语句 编程式注入 h3Name 执行环境 h3Name 与嵌入的页面通信 h3Name 安全性 h3Name 引用扩展里的文件 h3Name 例子 h3Name 视频(Youtube) h3Name Content Scripts Content scripts是在Web页面内运行的javascrip