2015-09-06 52 views
1

我已經使用代碼先創建了一個項目。如何根據網站用戶創建單獨的視圖

我想要創建兩個單獨的路線與單獨的佈局和共享數據庫。並通過提供單獨的啓動鏈接並使用用戶身份識別[Authorize]來管理分離,以幫助控制哪些用戶可以訪問哪些鏈接。

這也提供了在Intranet上呈現員工網站的機會。

但是我不希望消費者能夠查看這些鏈接。所以我將視圖和控制器分開。

例如:
1.如果僱員訪問該網站,索引主頁將是AdminIndex,使用_AdminLayout
2.如果客戶在訪問網站時,它會使用_Layout

folders

我敢肯定有更好的方法可以做到這片土地上的Index
在一個項目中包裝它是否可行?還是分開它們會更好,在這種情況下,我不確定如何共享數據庫。

回答

2

這是在同一解決方案中的多個項目尖叫。有多遠,你把它之後取決於項目的大小和您的特定需求,但最起碼​​,可以考慮沿着以下線的東西:

SolutionName 
- SolutionName.Admin 
- SolutionName.DAL // Data Access Layer (DAL) 
- SolutionName.Frontend/Web 

的DAL項目的目的是集中您的數據相關問題集中在一個地方,您將從其他兩個項目中參考。您可以進一步採取lot,具體取決於您正在處理的內容的大小和複雜程度,但上述內容對於較小的項目來說是一個很好的起點。

通過上述操作,您將使代碼自然更清潔,更易於測試和維護,因爲您不會在整個代碼中散佈條件檢查來確定某人是否是管理員。

+0

謝謝,我正在學習。這是有道理的。這是我在一個功能齊全的網站上的第一次嘗試。所以我很欣賞這些反饋。雖然我在學習,但課程時間並不總是與我的需求相匹配。 –

+0

@Heyyou沒問題 - 我們都還在學習。 :)我記得當我第一次出場時,這對我來說並不是特別清楚,但在這裏有一個很好的例子,說明爲什麼多個項目和分層解決方案可以有用。如果你對它真的可以採取多大措施感到好奇,那麼通過[this](https://msdn.microsoft.com/en-us/library/ff650706.aspx)進行閱讀是值得的。特別是,第5-9章介紹了分層的概念。當然還有其他的消息來源,但它無疑會給你以後的研究。 –

+0

謝謝約翰,我會做的。完成後將參加MS認證考試,因此所有的幫助都會變得更好。 –