在Web窗体应用程序中捆绑CSS和脚本

时间:2013-05-16 10:16:05

标签: c# webforms bundle

我在这里关于将我的CSS和Scripts捆绑到我的Web窗体应用程序的一个问题。

首先,我想指出我正在关注本教程:http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

我已经在App_Start类BundleConfig中看起来像这样:

using System.Web;
using System.Web.Optimization;

namespace SitePessoal.Web
{
    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery/core/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                        "~/Scripts/jquery/core/jquery-ui-{version}.js"));

            bundles.Add(new StyleBundle("~/CSS/css").Include(
                        "~/CSS/Estilos.css", 
                        "~/CSS/Print.css", 
                        "~/CSS/Styles.css"));
        }
    }
}

另外,我已经使用Nugget下载了Optimization包,之后我转到了我的Global.asax文件并试图在Application_Start方法中注册这个:

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup  
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    BundleTable.EnableOptimizations = true;
}

不幸的是,这是事情不起作用的地方。不幸的是,它一直用红色强调课程,并给我以下信息:

Error   3   The name 'BundleTable' does not exist in the current context
Error   4   The name 'BundleTable' does not exist in the current context
Error   2   The name 'BundleConfig' does not exist in the current context 

关于为什么会发生这种情况的任何想法?提前谢谢!

祝你好运,

2 个答案:

答案 0 :(得分:5)

我解决了@MadGatsu遇到同样教程后遇到的问题。

@Pricey是正确的,%MadGatsu正确地添加了对 Global.asax 的引用,包括,

<%@ Import Namespace="System.Web.Optimization" %>
<script RunAt="server">        
    void Application_Start(object sender, EventArgs e)
    {
          BundleConfig.RegisterBundles(BundleTable.Bundles);

但还有一点。

我推断,基于缺乏 Global.asax.cs ,我们有网站。在这种情况下,我们需要将 Bundleconfig.cs 文件放在特殊的aspnet文件夹 App_Code 中。不要添加 App_Start 文件夹来包含该文件,因为它不起作用。只需将我的 BundleConfig.cs App_Start 移至 App_Code ,就会纠正'BundleConfig'在当前上下文中不存在错误。

答案 1 :(得分:3)

你可能已经解决了这个问题,但以防它对任何人都有用..你可能需要在你的{{System.Web.OptimizationBundleConfig类命名空间SitePessoal.Web中添加一个引用。 1}}

示例:

Global.asax.cs

您可能还需要在using System.Web.Optimization; using SitePessoal.Web; namespace SitePessoal.Web.Application { public class Global : HttpApplication { private void Application_Start(object sender, EventArgs e) { BundleConfig.RegisterBundles(BundleTable.Bundles); BundleTable.EnableOptimizations = true; } } } 中添加System.Web.Optimization命名空间,如果您还没有这样做,因为仅仅添加对{{1}的引用是不够的通过web.config打包。

Microsoft.AspNet.Web.Optimization