【问题标题】:Choosing Which Controller Should Contain an Action选择哪个控制器应该包含一个动作
【发布时间】:2011-03-30 16:49:47
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我喜欢这样。因此,如果我明白这一点,则上述所有内容都应交给各自的控制器。
    【解决方案2】:

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

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

    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
    

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 2012-11-11
      • 2010-10-24
      相关资源
      最近更新 更多