【问题标题】:Getting System.Web.Optimization to work in a razor view within a class library让 System.Web.Optimization 在类库中的剃刀视图中工作
【发布时间】:2012-07-20 09:46:40
【问题描述】:

我正在构建一个模块化 MVC4 应用程序,其中每个模块 (=area) 都是一个类库。模型和控制器编译到 .dll 中,视图被复制到相应的文件夹中。在运行时,一切正常。在设计时还有一个烦人的问题:在类库中编辑剃刀视图时,Visual Studio 无法识别 System.Web.Optimization 命名空间。

The name "Styles" does not exist in the current context.
The name "Scripts" does not exist in the current context.

我尝试将程序集添加到根目录和内部 web.config 的 system.web/compilation 部分:

<add assembly="System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

我也试过没有特定版本。两种方法都没有解决问题,而是触发了asp.net运行时错误(在razor视图的第一行可见):

Could not load file or assembly 'System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

项目中引用了程序集,并且“复制本地”设置为“真”。它还作为命名空间添加到 razor 配置部分。

我怀疑这是我以后在使用其他程序集时会遇到的普遍问题。

编辑:我进行了一般设置,以使 Intellisense 在类库中的剃刀视图中运行。到目前为止一切正常,除了 VS2010 无法识别优化命名空间。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 razor asp.net-mvc-areas system.web.optimization


    【解决方案1】:
    Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0.0
    

    如果您的项目需要指定版本,请添加 -version... 以选择真实版本。对你有帮助。

    【讨论】:

      【解决方案2】:

      以下内容:

      Install-Package Microsoft.AspNet.Web.Optimization
      

      对我来说很好。

      【讨论】:

        【解决方案3】:

        @Vladimir ,我正在使用 Visual Studio 2013,并且不得不将您的行稍微更改为:

        安装包 Microsoft.AspNet.Web.Optimization

        这为我解决了问题。

        【讨论】:

          【解决方案4】:

          我在 asp mvc 项目的预构建视图中出现此错误 为了解决这个问题,我已经用 nuget 安装了 Microsoft.Web.Optimization。

          从工具菜单中,选择库包管理器,然后单击包管理器控制台。输入以下命令以更新捆绑和缩小:

          Install-Package Microsoft.Web.Optimization -Pre
          

          这里有一些补充http://forums.asp.net/t/1812274.aspx/1

          【讨论】:

          • 我在哪里输入这个安装包?
          【解决方案5】:

          web.config 文件添加到您的类库项目(包含 Razor 视图的项目)的根目录中,其中包含以下内容(取自 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>
          

          这会诱使 Visual Studio 认为它是一个 Web 项目并启用 Intellisense。

          【讨论】:

          • 我已经这样做了。 Intellisense 工作正常,除了 System.Web.Optimization 命名空间。
          • 你注意到我的例子中的&lt;add namespace="System.Web.Optimization"/&gt;了吗?你有吗?
          • 是的,我有。我忘了在问题中提到这一点,对不起!
          • 添加 到 Views/Web.config 解决了我的问题。谢谢
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-08
          • 2021-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多