0

我想为 mvc 应用程序添加皮肤支持,允许添加多个皮肤并让用户选择喜欢的一个。

皮肤目录将在 cookie 中从数据库中接收

为了实现这一点,我想创建一个参数化包,它将为皮肤指定的目录作为输入,并为指定路径动态创建包

bundles.Add(new StyleBundle("~/Content/css")
            .Include(
            "~/Content/{skinDirectory}/reset.css",
            "~/Content/{skinDirectory}/site.css",
            "~/Content/{skinDirectory}/grids.css")
            );

其中 {0} 是我从包中发送的目录名称,我在我的 _Layout 页面中调用它,如下所示:

@Styles.Render("~/Content/css", skinDirectory)

这可能吗?

4

1 回答 1

1

这可能有点晚,但可能会帮助其他人。是的,这是可能的。

public static class DynamicBundles
{
    public static IHtmlString RenderSkin(string skinDirectory)
    {            
        BundleTable.Bundles.Add(new StyleBundle("~/Content/css/" + skinDirectory).Include(
            "~/Content/" + skinDirectory + "/reset.css", 
            "~/Content/" + skinDirectory + "/site.css", 
            "~/Content/" + skinDirectory + "/grids.css"));

        return Styles.Render("~/Content/css/" + skinDirectory);
    }
}

然后在您的 _Layout 页面中使用

@DynamicBundles.RenderSkin(skinDirectory)
于 2014-08-31T09:33:33.743 回答