【问题标题】:System.Web.Optimization cannot be used in a razor view file in a Class Library projectSystem.Web.Optimization 不能在类库项目中的剃刀视图文件中使用
【发布时间】:2013-04-30 04:25:30
【问题描述】:

我在一个模块化的 asp.net mvc4 项目中工作。一些视图位于类库项目中。我已经设置了 web.config 以启用剃刀视图中的智能。 @model、@Html.* 和其他都运行良好。但是当我尝试使用@Scripts.Render() 在我的视图中引用一个 js 文件时。它说找不到“脚本”。我检查了 web.config 文件。 System.Web.Optimization 位于 // 节点中。我还安装了 Nuget 的 Microsoft.AspNet.Web.Optimization 包。

我尝试在 .cs 文件中键入代码以使用 System.Web.Optimization 成员,它可以工作。但我不能在 .cshtml 文件中做同样的事情。即使我输入@using System.Web.Optimization,它也会提示我找不到优化。

我不确定我还能做些什么来解决这个问题。任何线索都非常感谢。

【问题讨论】:

    标签: razor class-library system.web.optimization


    【解决方案1】:

    如果您在类库的根目录中有一个 Web.config,请确认它包含以下内容:<add namespace="System.Web.Optimization"/>

    如果不这样做,请诱使 Visual Studio 认为它是一个 Web 项目并启用 Intellisense 并通过将 web.config 文件添加到类库项目的根目录(包含 Razor 视图的视图)具有以下内容 (taken from this blog post):

    <configuration>
      <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
          <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
      </configSections>
    
      <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.Optimization"/>
            <add namespace="System.Web.Routing" />
          </namespaces>
        </pages>
      </system.web.webPages.razor>
    
      <system.web>
        <compilation targetFramework="4.0">
          <assemblies>
            <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
          </assemblies>
        </compilation>
      </system.web>
    </configuration>
    

    当我遇到这个问题时,以上内容对我有用,但这里有更多链接:

    http://forums.asp.net/t/1812274.aspx/1

    Getting System.Web.Optimization to work in a razor view within a class library

    【讨论】:

      猜你喜欢
      • 2012-07-20
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2016-02-06
      相关资源
      最近更新 更多