我听到一些关于我们应该尽可能少地将代码保存在控制器中的信息。那么我们把这些代码放在哪里呢?
答案 0 :(得分:3)
这取决于您所说的代码。例如,如果你在谈论验证,这应该进入模型,如果你在谈论数据访问,这也应该进入存储库或模型(我个人更喜欢存储库),如果你在谈论业务逻辑,这应该进入一个服务,这样所有留在控制器中的就是调用这个东西并将结果传递给视图。
我建议你看看this video presentation关于如何让吉米·博加德节食你的控制器。
答案 1 :(得分:1)
你知道瘦瘦的控制器吗?所以我的答案是,如果你在控制器中放置了许多代码,那么你的代码就会很麻烦并且难以进行单元测试。控制器真的只执行与当前HttpContext相关的动作,所以如果你有业务逻辑,数据访问,加密......你必须分离关注点。您没有将业务逻辑放在此处的原因是业务属于域。所以委托Domain进行处理。控制器必须考虑与HttpContext(Session,ViewData,TempData,当前线程中的用户,全局和本地资源......)相关的所有操作,并将所有其他操作委托给其他组件。经验法则是烹调美味蛋糕(phpcake)的肥胖模型和薄控制器。 您可以在here和此处参考瘦身和脂肪控制器的一些链接。