0

我听到了很多意见,但是对于控制器中应该使用哪种类型的逻辑是否有一般规则?

我使用存储库进行数据访问和更新,但是如何在操作方法中获取模型参数,在控制器中更新它(例如,FormCollection 对象等),然后将其传递到存储库进行更新。

有没有明确的禁忌?

谢谢

4

1 回答 1

4

我通常将Controller设计成允许Model和View解耦,这样它们就可以忽略彼此的存在。

问题是定义模型的职责是什么,以及控制器对于那些边界问题的职责是什么。没有人会争辩说将实体持久化到数据库中是控制器的任务,但是如果我们谈论验证,事情就会变得更有争议。

对于输入验证,我个人的方法是在控制器端执行它,假设/约束实体在传递给模型时已经有效。一些在控制器端提供开箱即用验证的 MVC 框架(即 Struts)鼓励了这种趋势,但是当您必须在不同的上下文中重新部署模型时(例如Web 服务),并且您的验证规则连接在前一个 Controller 中。

我鼓励你的研究,但有一个来自个人经验的小建议:避免想太多。宗教战争和不同方法的拥护者的无谓固执使这类问题变得臃肿。在现实世界中,最后,所有这些设计问题都被确凿的事实搞砸了,你只会被要求在 15 分钟内完成一些工作,正如 VP 在午餐时间之前想要的那样。

于 2013-03-06T18:43:38.510 回答