8

我一直在想這樣做幾天的最佳方式,並想知道其他人都在想什麼。ASP.NET MVC 3 - 處理多個域並共享一個代碼庫

我們希望將我們所有的公司網站重建並升級到ASP.NET MVC 3,並在它們之間使用通用模板(主要是);我們已經在MVC 3中有一個站點,它將成爲其他站點的供應站點。

起初,我只是複製/粘貼項目,將所有內容替換爲與每個站點相關的內容並完成它,但這會在將來更新模板/樣式表/幫助程序更加困難 - 我們只有一些網站,所以它不是一個巨大的問題,但。

理念1

我想,我想這樣做將有包含所有網站的一個項目,可能分裂的地區,讓他們分開,使用路由發送請求各個領域到正確的地方,並建立指向正確的領域的鏈接。

這將適合我們如何計劃將所有網站鏈接在一起 - 基本上,所有列出各公司的網站都有一個共同的菜單,這些鏈接到包含與該特定項目相關的子菜單的公司域公司。

這就是它變得棘手的問題,因爲我需要在域級別進行路由 - 而不是路由到當前域上的company2控制器(例如http://www.groupcompany.ex/company2)我想路由請求company2自己的域 - http://www.company2.ex/{controller}/{action}/{id}

理念2

我也可以在一個單一的解決方案爲每個網站建立項目和有它承載任何幫手,CSS和JavaScript等

任何思考一個共同的項目上哪種方式我應該是否正在做這件事,以及我的建議是否完全瘋狂? (這可能是這種情況)。

+1

我們在這裏爲我們的某些約束設置工作:http://stackoverflow.com/questions/490963/can-have-part-of-the-domain-name-as-a-parameter-in-my -routing-rules/499688#499688 – schmidty

回答

7

這是一個常見的要求。你所問的是多租戶。迄今爲止,我不知道如何實現MVC中的多租戶共識。可能有很多解決方案,因爲有人會問這個問題。

我還沒有解決這個問題讓我滿意。但是,有很多博客文章都涉及到這一點。例子包括:

http://weblogs.asp.net/zowens/archive/2010/05/26/multi-tenant-asp-net-mvc-introduction.aspx

http://codeofrob.com/archive/2010/02/01/multi-tenancy-in-asp.net-mvc-why-do-we-want-to.aspx

這是我認爲需要建設成爲在某些時候框架的東西。希望發生這種情況,或者至少有人想出一個優雅的解決方案。

+0

感謝您的回答 - 當我一直在尋找這個問題時,多租戶出現了很多。從閱讀你的第二個鏈接看起來它幾乎可以解決我們的問題,但我不確定它是否完全實現 - 似乎主要是專注於爲各種用戶定製單一產品,而我們大多需要一個完全獨立的網站,爲他們提供不同的視圖和控制器(酒吧常見的功能,如聯繫表格等)。我發現很多關於在子域級別上路由的問題,但在完整域級別上卻沒有那麼多。搜索仍在繼續。 – akiller

+0

@akiller你的「搜索」出現了什麼好處?第一個鏈接是舊的(並專注於MVC1/MVC2 - 雖然我懷疑不難轉換爲MVC3)。博客作者似乎放棄了另一個框架的第二個鏈接(導致我懷疑他的解決方案和/或需求不起作用)。 – REMESQ

+0

@REMESQ我放棄了最後,只是添加了一個常用的實用工具功能的MVC幫手項目,並在我們的主域添加共享的CSS /圖像文件,並從我們的每個網站佈局頁面鏈接到他們。佈局文件等仍然有很多重複,但是它需要大量的維護。也許在我的原始問題下看看schmidty的評論? – akiller