gpt4 book ai didi

asp.net-mvc - 什么时候应该在 Asp.net MVC 中创建新的 Controller 类(设计问题)?

转载 作者:行者123 更新时间:2023-12-02 02:35:19 26 4
gpt4 key购买 nike

在我问这个问题之前,这是我对 MVC 模式中 Controller 的理解。

  1. Controller 是应用层(在 DDD 中)
  2. 它控制应用程序流。
  3. 保持瘦身
  4. 它控制工作单元(也称为事务)

我的问题是“我应该在什么时候创建新的 Controller 类?”。我将以 NerdDinner 中的 DinnerController 为例.

  • 它是Dinner Module 的 Controller 吗? (它是模块吗?IMO,它对于模块来说太小了)
  • 如果是,我应该为每个模块 创建 Controller 吗? Controller 会变胖吗?
  • 如果不是,我应该什么时候创建新 Controller ?

我个人更喜欢为每个用例 创建 Controller 类。例如,CreateDinnerController、EditDinnerController、ListDinnerController、SearchDinnerController 等。但是 IMO 也有一些缺点,例如

  1. 有时,它违反了 DRY 原则(它可能需要在两个地方创建相同的 ViewModel,例如 Create 和 Edit 可能有 DinnerViewModel)
  2. 需要明确定义路由? (我仍然喜欢像/Dinner/Create/Dinner/Edit/1这样的路线)

提前致谢。

最佳答案

通常的做法是创建一个与每个 View 关联的 Controller 。当应用程序使用 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

关于asp.net-mvc - 什么时候应该在 Asp.net MVC 中创建新的 Controller 类(设计问题)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com