选择哪个控制器应包含一个动作

时间:2011-03-30 16:49:48

标签: asp.net-mvc design-patterns asp.net-mvc-3 controller

我在确定何时创建新控制器以及哪个控制器应包含某些操作方法时遇到问题。

我目前正在建立一个拍卖网站,其中用户发布商品和其他用户出价以赢得拍卖。有一个专用于用户的整个面板(用户帐户/配置文件)。在该面板中,用户可以查看/编辑他的个人信息,查看他的列表,他的出价以及他参与的拍卖的状态,查看/添加他的地址以用于物品递送/运送目的,以及他的个人消息(收件箱)。

所以,我自然会认为必须有ItemControllerUserControllerBiddingController(不确定),AddressControllerMessageController一些其他控制器。但是,我如何确定我实际上需要一个控制器,以及如何确定某个控制器属于某个控制器?目前,我在UserController内有很多东西(因为这些是用户的出价,项目/列表,地址,消息......等等),但我不太确定。

如何决定要创建哪些控制器以及何时创建它们?

2 个答案:

答案 0 :(得分:2)

我个人坚持RESTful conventions。因此,一旦确定了资源,就很容易。

答案 1 :(得分:1)

我尝试按概念组织我的控制器。基本上我希望控制器上的动作与它最相关。例如,我会考虑查看您自己的列表与搜索拍卖或查看单个拍卖更相关,而不是编辑您自己的个人资料,因为该页面的模型将强调拍卖,而不是用户的名称,声誉等。

在你的情况下,我可能会考虑这样的事情:

AuctionController
    - Search
    - View
    - PlaceBid
    - Create
    - MyListings

ShippingController
    - Payment
    - Location
    - Confirm

AccountController
    - Profile
    - EditProfile
    - OrderStatus
    - Inbox

FeedbackController
    - View (for a specific user)
    - Leave (for giving feedback)

AuthenticationController
    - Login