C# 在一个控制器中有很多方法,而不是有多个控制器
我正在开发一个应用程序,我正在思考一些事情。所以我想我会请有经验的人告诉我他们是怎么想的 所以我有一个巨大的控制器(商店控制器),里面有很多方法,Get和Post动作,等等。它工作得很好,但我仍处于开发阶段 我想知道最好的做法是什么:让这个控制器包含这么多的方法和操作,还是将这些方法拆分为多个控制器?让一个控制器处理几乎所有的方法是理想的,还是多个控制器 在你问之前,是的,我的商店控制器中的所有东西都是“与商店相关的”。但在我的商店里,我有商品、包装等等 编辑C# 在一个控制器中有很多方法,而不是有多个控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我正在开发一个应用程序,我正在思考一些事情。所以我想我会请有经验的人告诉我他们是怎么想的 所以我有一个巨大的控制器(商店控制器),里面有很多方法,Get和Post动作,等等。它工作得很好,但我仍处于开发阶段 我想知道最好的做法是什么:让这个控制器包含这么多的方法和操作,还是将这些方法拆分为多个控制器?让一个控制器处理几乎所有的方法是理想的,还是多个控制器 在你问之前,是的,我的商店控制器中的所有东西都是“与商店相关的”。但在我的商店里,我有商品、包装等等 编辑 谢谢大家!按照你的建议,我已经将我
谢谢大家!按照你的建议,我已经将我巨大的
存储
控制器拆分为更小的控制器:一个用于物品,一个用于包装,等等。这确实使代码更具可读性。此外,提供的许多评论将使我进入升级的轨道,所以非常感谢 我更喜欢多个控制器,而不是有许多动作的单个控制器。我会这样做-让BaseStoreController从控制器派生,这个控制器将具有通用的功能和属性。然后从BaseStoreController派生StorePackageController、StoreItemsController等
在每个控制器中,我将有与包、项目等相关的相应操作。在每个操作中,我将确保使用命令模式和外观模式来确保正确的代码分离。我的标准方法是每个菜单选项有一个控制器 例如,假设您有一个带有菜单选项的站点 主页、产品、博客、常见问题解答等 我会有一个HomeController、ProductContsController、BlogController和FAQController 您还可以创建一个或两个通用控制器,用于处理网站多个部分使用的共享操作,并创建一个基础控制器,而不是处理跟踪和记录页面访问等通用任务
另一件需要注意的事情是SSL,特别是如果您决定使用SSL执行一些共享控制器操作或装饰整个控制器(例如shoppingcart等),那么最好将所有控制器的操作划分为一些逻辑包,以便将它们移动到单独的控制器。多亏了这一点,这一切变得更加可读和直观,你也为其他开发人员谁将工作的项目 问题是:如何划分它 事实上,有几个标准可以影响此类决策,例如:
- 控制器应与一组逻辑连接的页面连接。例如,对于电子商务平台,您可能会有一个CheckoutController、ProductController、UserAccountController等
- 您还应该考虑应该考虑哪些业务概念。在您的案例中,您有一个概念库,但您可能已经意识到这一点,它本身就是一个非常广泛的概念。因此,您可能应该在业务概念中区分更多细节李>
请记住,ASP.NET MVC使用CoC(约定优先于配置)方法,该方法也适用于控制器和视图命名约定及其分组和放置在适当目录中的方式。在划分控制器时,应考虑这一点 您应该为正在使用的每个离散单元配备一个控制器。所以,如果你的控制器管理多个实体,那么是的,我认为是时候打破它了。然而,控制器的长度,否则,并没有区别 现在,使用单独的控制器会遇到的唯一问题是路由,但这可以通过以下任一方法轻松解决:
Store
区域中有一个名为ItemsController
的控制器,则默认路径将最终为Store/Items
。然而,C#开发者对这些领域有着复杂的感受:有些人喜欢它们,有些人怀着强烈的激情憎恨它们public partial class StoreController: Controller
{
public ActionResult Index()
{
return View();
}
}
public partial class StoreController
{
public ActionResult Show()
{
return View();
}
}