我有一個ASP.Net MVC網站,「在線學習普通話」。它運作良好,對我來說工作得很好。現在,我想重新使用此網站作爲新網站的模板,「在線學習西班牙語」。這兩個網站將位於完全不同的域和完全不同的服務器上。結構兩個不同的網站,外部頁面不同,內部頁面相同
對於我的「學習中文在線」網站上,網頁1/3是外部頁面,用戶可以瀏覽,而無需登錄到網站。 其他2/3的網頁是內部頁面,用戶只能看到他們是否登錄到網站。我希望這兩個網站都使用不同的外部網頁(兩個網站的外部.aspx頁面將不同),但是兩個網站共享同一組內部網頁(兩個網站的內部.aspx頁面將相同)。
我的問題是,在ASP.Net MVC中,我怎樣才能爲兩個網站構建我的項目/解決方案?由於兩個網站的唯一區別是外部頁面,我能想到的處理外部頁面的最簡單的解決方案是將每個視圖的映射存儲在數據庫中,根據某個常量(即。WebsiteType)從數據庫獲取映射,在web.config中設置,然後根據映射返回視圖。例如,在我的控制器:
// WebsiteType is stored in web.config. It is set to LearnMandarin for the learn Manadarin
// online website and it is set to LearnSpanish for the learn Spanish online website
string websiteType = WebConfigurationManager.AppSettings["WebsiteType"];
// figure out which Homepage .aspx view to return, based on the websiteType
// GetView(...) will get the mapping from the database
string viewToReturn = GetView(websiteType, "HomepageView");
return View(viewToReturn);
這是我能想到的迄今最乾淨的解決方案,我能想到的最好的結構。我最終會在同一個目錄中有兩個不同的.aspx文件 - 一個是學習漢語在線網站的.aspx頁面,另一個是學習西班牙語在線網站的another.aspx文件。這是構建我的項目的最佳方式,還是有更清晰的方式?
(我使用Visual Studio 2010和ASP.Net MVC版本3.0.0.0)
這真的是什麼*區* MVC的功能有被創造了! – Haney
那麼,你是說我的外部網頁,應該在區域下面,而我的內部網頁是共享的,不應該在區域下面?我是使用區域的新手,所以如果我的速度不夠快,我很抱歉(我正在閱讀它的教程)。 –
您可以根據網站域或其他因素創建一個屬性來設置Area RequestContext數據,然後將頁面放在您認爲合適的位置。 – Haney