以开源网站为主题的.NET网站主题

时间:2014-01-13 23:09:13

标签: jquery html asp.net css .net

这更像是一个“方法”问题。我想运行相同的.NET代码,但我希望能够对UI进行大幅改动 - 即多个站点运行相同的代码但不同的外观/菜单/等。这是如何用.NET完成的?简单地说“JQuery.UI”并不会有所帮助,因为真正做到的只是让你看起来略有不同,我正在寻找截然不同的。

我相信使用多个母版页可以解决问题。有没有办法通过后面的代码更改母版页?如果是这样,那怎么办?

注意:我们不想使用MVC

1 个答案:

答案 0 :(得分:1)

在ASP.NET中进行大量UI更改的最简单方法是为每个外观使用不同的母版页。您可以从代码隐藏中更改正在使用的母版页。

MSDN上有Working with ASP.NET Master Pages Programmatically的示例,但我在global.asax中这样做,因此可以在整个网站范围内应用:

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    Page p = this.Context.Handler as Page;
    if (p != null)
    {
        p.PreInit += new EventHandler(page_PreInit);
    }
}

protected void page_PreInit(object sender, EventArgs e)
{
    Page p = this.Context.Handler as Page;
    if (p != null)
    {
        p.Theme = "SomeGreatTheme"; //optional.. I personally don't use them.
        p.MasterPageFile = "~/BestMasterPage.master"; //i.e. that web.config value or DB value.
    }
} 

虽然有一点需要注意,设计一个足够灵活的网站来处理许多不同的CSS和母版页来源有点棘手......