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


75

在我的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也会发生这种情况。我该怎么办?

Answers:


147

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


您的解决方案有效,错误消失了,但仍然无法在.cshtml页面中获取情报,为什么?
Mox Shah

2
这与无关System.Web.Optimization。但见stackoverflow.com/questions/22832435/...
haim770

1
不,The name 'Scripts' does not exists in the current context在添加System.Web.Optimization视图的web.config之后,它已经抛出了错误,但是是的,Intellisense还是一样,好的,谢谢,让我检查一下这个问题。
Mox Shah 2015年

6
对于在配置文件中添加web.optimization后的智能问题。关闭Visual Studio中的所有打开的选项卡。清理项目并生成项目。打开.cshtml文件,然后检查智能功能是否正常,然后再次重建它。现在应该可以了。
Dipitak

1
这对我有用,但是只有从NuGet安装了Microsoft.Aspnet.Web.Optimization之后,这才有可能-因为我的项目从4.6.0升级到4.6.2,但值得检查其他有问题的人
Jon Story

32

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

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

2
有效!!但是为什么在Views / web.config中
Asad Shakeel,

@AsadShakeel遇到了同样的问题,让我的工作方式也一样。我发现如果您再次删除@using System.Web.Optimization并关闭_Layouts.cshtml文件并重建解决方案,然后重新打开该文件,则智能感知将再次损坏。将线路放回原位,无需重建,即可立即将其还原。这是在最初没有BundleConfig类的项目中(&未在Global.ascx.cs中注册),而System.Web.Optimization最初不在我的web.config中。手动添加了所有这些。从一开始就拥有BundleConfig.cs的项目中,从来没有这个问题。
vapcguy

@hechchatt:这是您的回购区
merrais

17

请按照我的步骤将其清除

第一

  • 安装 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

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

BundleConfig.RegisterBundles(BundleTable.Bundles);

这可能是问题的一部分,但更准确地包括确保System.Web.Optimization已注册名称空间(引用程序集,web.config,using语句...)。
vapcguy

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.