我一直在使用MVC框架,我真的很喜欢这些问题被分离出来。 我已经陷入了让控制器做很多工作的坏习惯。 所以我真的在寻找一些build议。 当我第一次开始使用MVC时,我经常让控制器在数据库工作完成后对模型进行操作。 我知道这是不好的,所以搬到模型。 然而,我不满意,因为我希望我的模型是非常有学问的。 我已经做了一些阅读,我发现人们通过一个服务层来保持他们的控制器和模型的精益,我喜欢它的外观。 我只是想了解一个服务层和存储库应该如何一起工作。 这是我的假设,你能不能让我知道这是否是一种好的工作方式? 如果不需要对数据进行操作,则控制器可以直接调用存储库,因此不需要涉及服务层 一旦任何工作需要完成数据(业务逻辑),那么这应该在服务层完成,控制器将根据需要简单地调用服务层 一旦服务完成了业务逻辑,它就会根据需要使用存储库(如果数据需要保存)。 理想情况下,模型应该保持精益,理想情况下只是DTO的行为 数据validation将在模型中完成(使用MonoRailvalidation属性)。 我很欣赏,甚至不喜欢用很多属性来污染他们的模型,但这是一个不同的讨论。 我喜欢用户界面中自动jQueryvalidation的MonoRailvalidation属性的好处。 我试图把我所有的代码都转化为单一责任原则,因此试图理清我的编码习惯。 谢谢