MVC中的当前上下文中不存在名称“Scripts”

时间:2014-05-08 06:39:34

标签: c# asp.net-mvc razor

在我的mvc应用程序中,_Layout.cshtml中的代码如下......

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")

</head>

但问题在于The name 'Scripts' does not exists in the current context

我已将程序集添加到引用,并将Bundle配置添加为using System.Web.Optimization;

@styles 也会发生这种情况。 我该怎么办?

7 个答案:

答案 0 :(得分:110)

确保~/Views/Web.Config添加了System.Web.Optimization命名空间:

<system.web.webPages.razor>
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization"/>
      </namespaces>
    </pages>
</system.web.webPages.razor>

答案 1 :(得分:19)

.chtml中的以下内容解决了问题

@using System.Web.Optimization
@Scripts.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")

答案 2 :(得分:11)

请按照我的步骤清除此

第一

  • 安装Microsoft.AspNet.Web.Optimisation
  • 检查App_Start文件夹是否包含BundleConfig.cs文件。
  • 添加<namespaces> <add namespace="System.Web.Optimization"/> </namespaces>Views/web.config文件
  • BundleConfig.RegisterBundles(BundleTable.Bundles);
  • 中添加Global.asax.cs
  • 重建并运行

答案 3 :(得分:1)

在Visual Studio 2019中,我能够解决此错误。 Microsoft.Web.Optimization现在包含在“ Microsoft.AspNet.Web.Optimization”包中。 使用NuGet Packing Manager下载软件包。 在.cshtml文件中,添加“ @using System.Web.Optimization;

答案 4 :(得分:0)

仍有智能感知问题,您可以将此代码添加到global.asax文件中的Application_Start()方法。

BundleConfig.RegisterBundles(BundleTable.Bundles);

答案 5 :(得分:0)

解决此问题的最简单方法是从 Nuget 包管理器下载 (Microsoft.AspNet.Web.Optimization)。

步骤:

  1. 右键单击解决方案。
  2. 选择“管理解决方案的 Nuget 包”
  3. 搜索(Microsoft.AspNet.Web.Optimization)并下载-->申请 它在项目上。
  4. 关闭 Visual Studio 中所有打开的页面,然后重新打开它们,

答案 6 :(得分:0)

你可能需要添加nuget包

Microsoft.AspNet.Web.Optimization

到您的项目。