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

tar*_*ppa 59 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>
Run Code Online (Sandbox Code Playgroud)

但问题是它说The name 'Scripts' does not exists in the current context.

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

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

hai*_*770 123

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

<system.web.webPages.razor>
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization"/>
      </namespaces>
    </pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)

  • 在配置文件中添加web.optimization后的智能问题.关闭visual studio中的所有打开选项卡.清理项目并构建项目.打开.cshtml文件并检查智能是否有效,如果没有,则再次重建它.现在它应该工作. (4认同)
  • 这与`System.Web.Optimization`无关.但请参阅http://stackoverflow.com/questions/22832435/mvc-razor-view-intellisense-broken-in-vs-2013 (2认同)

zap*_*poo 21

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

@using System.Web.Optimization
@Scripts.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
Run Code Online (Sandbox Code Playgroud)

  • 有效!!但是为什么在**Views/web.config中添加命名空间时它不起作用** (2认同)

Hac*_*amz 14

请按照我的步骤清除这一点

第一

  • 安装 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
  • 重建并运行它