2016-07-27 38 views
2

我感到困惑的行動在C#中的ASP.NET MVC命名的一致性,讓我們說我有以下層一個簡單的應用:控制器動作命名的一致性MVC

Controller - >Service layer - >Data Access layer

數據訪問層包含與我的數據庫表1:1類。比方說,我有5臺是UserUserAddressesOrderOrderDetailsProduct

我想組這2組這樣:

CustomerController包含與UserUserAddresses
TransactionController什麼包含與任何Order,OrderDetailsProduct

我的問題通常是控制器中的動作命名方法是類似於

Index 
Create 
Edit 
Delete 
etc 
在我的情況

所以,我怎麼把這些命名模式,而我需要一個單獨的CreateEditDeleteUserUserAddreses

任何幫助將不勝感激

表示歉意的英語不好

+0

'EditUser'和'EditUserAddresses'如何? – VSG24

回答

2

創建兩個領域

第一區 - 客戶
- ControllerUser(索引,創建,編輯,刪除)
- ControllerUserAddreses(索引,創建,編輯,刪除)

第二區域 - 交易
-ControllerOrder(索引,創建,編輯,刪除)
-ControllerOrderDetails(索引,創建,編輯,刪除)
-ControllerProduct(索引,創建,編輯,刪除)

,如果你這樣的設計可以幫助你想要索引,創建,編輯,刪除等

1

您通過使用兩個不同的控制器CustomerControllerTransactionController正確地跟蹤該模式。

每個控制器都有它自己的CRUD操作和視圖,所以你不必擔心命名它們有什麼不同。

所以你通常會落得這樣的:

CustomerController: 
      Create(UserModel theUser) 
      Edit(int id, UserModel theUser) 
      Delete(int id) 


TransactionController: 
      Create(OrderModel theOrder) 
      Edit(int id, OrderModel theOrder) 
      Delete(int id) 

訂單明細可以訂購的屬性,所以你不一定需要爲每個實體的操作方法,如果他們以這種方式相關。這同樣適用於您的用戶:

class UserModel 
{ 
    public List<UserAddress> UserAddresses {get; set; } 
}