正确使用控制器和处理业务逻辑的方法

时间:2015-06-18 18:12:20

标签: c# asp.net asp.net-mvc

我在如何编写ASP.NET MVC应用程序方面遇到了麻烦,主要是如何使用我的业务逻辑。我将举一些例子。我不知道这是否正确:

public class UserController {
   public ActionResult Create(User user){
      UserService service = new UserService();
      if(!service.UserExists(user.Email)){
        if(service.InsertUser(user)){
           service.SendConfirmation(user);
         }
      }
   }
}

或者这是对的

public class UserController {
   public ActionResult Create(User user){
      UserService service = new UserService();
      service.CreateUser(user);
   }
}

在第二个例子中,UserService的方法CreateUser将检查用户是否存在,然后将插入,然后将发送电子邮件。

主要区别在于,在第二个示例中,控制器只调用一个方法,而在第二个示例中,它调用许多方法并接收答案,在这两种情况下,逻辑都在UserService内。

什么是对的?

1 个答案:

答案 0 :(得分:4)

第二个是可供选择的人。它利用适当的封装。控制器不应该执行逻辑,而是与服务通信,并使用数据提供视图并管理程序流。

但是您应该收到服务的一些回复。

在您的示例中,它可能意味着一些枚举值或布尔值,以确定用户的创建是成功还是任何事情...... 然后,您可以让控制器管理接下来的视图以及它获得的数据......