2014-01-13 75 views
-1

這更多的是一種「方法」問題。我想運行相同的.NET代碼,但是我希望能夠對用戶界面進行重大更改 - 即運行相同代碼但具有不同外觀/菜單等的多個站點。這如何完成與.NET?簡單地說「JQuery.UI」不會有幫助,因爲所有的確會讓你看起來有些不同,而我正在尋找截然不同的東西。更換主題皮膚一個.net網站就像是一個開放源代碼的網站

我相信,使用多個母版頁是要解決問題。有沒有辦法通過後面的代碼來改變主頁面?如果是這樣,那是怎麼做的?

注意:我們不希望使用MVC

+2

儘管這可能會導致大討論;這本身就意味着它有點寬泛。我還會刪除「有什麼工具?」因爲只有這個問題可以讓你的主題關閉,因爲SO上不允許使用工具建議。歡呼聲 –

+0

它在你的標題。主題。而你甚至不需要那些。您可以通過加載不同的母版頁來單擊來更改整個網站。我有一個webforms/mvc混合網站,它既有固定寬度(舊)主題,又有一個響應式,完全不同的主題並行運行。相同的代碼庫。不同的母版頁。 – MikeSmithDev

+0

MikeSmithDev ...但是當您創建.aspx頁面時,您必須告訴他們綁定了哪個masterpage以便創建該指令。你如何改變這樣的動態頁面? –

回答

1

,使在ASP.NET激烈的用戶界面的變化,最簡單的方法是使用每個看看不同的母版頁。您可以更改代碼隱藏中正在使用的主頁面。

沒有爲Working with ASP.NET Master Pages Programmatically MSDN上的例子,而是我做它在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和母版頁源...