2014-11-07 46 views
1

我有點困惑如何在MVC中使用區域。 我爲管理員和客戶創建了兩個區域,但管理員和客戶可以訪問同一個控制器。如何在MVC中使用區域

例如,PurchaseOrderController,我很困惑這個控制器應放置在哪裏, 在管理區或客戶區?

客戶可以創建購買訂單,編輯購買(如果尚未處理), 並顯示其購買和細節。

聯繫,因此可以看到所有的客戶購買和細節,工藝購買 的(更新狀態爲正在進行中)

,我應該創建在管理區和客戶區PurchaseOrderController? 你對這種情況的解決方案是什麼?

回答

1

這聽起來像兩個完全不同的流程。你已經描述了一個單獨的控制器可能是兩個用例都需要的。否則,你可能會拋棄你的觀點,如果邏輯上的if語句可能不屬於該屏幕上的技術屬性。

授權可以在控制器和方法級別使用,所以如果您發現在單獨的控制器中沒有意義,那麼將它們合併爲一個。

[Authorize(Roles="Administrators")] 
+0

我只是想我是否正確實施了區域,或者它是否是一種好方法,我們在不同的區域使用相同的控制器? – Willy 2014-11-07 03:01:11

+0

我會說它更好地去單獨的區域,因爲儘管有一些他們共享的組合,但您的視圖模型應該與用戶和管理員的視圖模型不同。我相信,即使對管制員來說,最好也要關注分離問題。 – TysonWolker 2014-11-07 03:06:02

+0

對不起,延遲迴復。同意,但控制器的名稱呢?他們應該有相同的名字嗎?你能否給出一個通常由MVC程序員完成的例子嗎? – Willy 2014-11-13 10:40:03