2010-01-17 45 views
3

在我問這個問題之前,這裏是我對MVC模式中Controller的理解。什麼時候應該在Asp.net MVC(設計問題)中創建新的Controller類?

  1. 控制器是應用層(在DDD)
  2. 它控制的應用流。
  3. 它保持薄
  4. 它控制工作單元(a.k.a交易)

我的問題是「當我要創造新的控制器類?」。我將以NerdDinner作爲DinnerController的示例。

  • 是它晚餐模塊控制器? (是模塊?IMO,它對於模塊來說太小)
  • 如果是,我應該爲每個模塊創建控制器?控制器會變胖嗎?
  • 如果不是,我應該在什麼時候創建新的控制器?

我個人更喜歡根據創建控制器類用例。例如,CreateDinnerControllelr,EditDinnerController,ListDinnerController,SearchDinnerController等,但也有一些缺點IMO如

  1. 有時,它違反了DRY原則(這可能需要在兩個地方創建相同的視圖模型,例如創建和編輯可能有DinnerViewModel)
  2. 需要明確定義路由嗎? (我仍然perfer路線像/晚餐/創建/晚餐/編輯/ 1

在此先感謝。

回答

0

上ASP.net MVC和軌道工作後,我認爲控制器應創造每資源(在REST風格應用程序)。

1

通常的做法是創建一個與每個視圖關聯的控制器。當應用程序使用Restful URL設計時,這通常會映射到索引,新建,編輯和刪除操作。然後,您可以映射一個方法來處理每個操作。

http://example.com/examples/1/edit - maps to edit method on ExamplesController 
http://example.com/examples/1/new - maps to new method on ExamplesController 
http://example.com/examples - maps to index method on ExamplesController 
http://example.com/examples/1/delete - maps to delete method on ExamplesController 

http://example.com/users/1/edit - maps to edit method on UsersController 
http://example.com/users/1/new - maps to new method on UsersController 
http://example.com/users - maps to index method on UsersController 
http://example.com/users/1/delete - maps to delete method on UsersController 
相關問題