我在如何编写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内。
什么是对的?
答案 0 :(得分:4)
第二个是可供选择的人。它利用适当的封装。控制器不应该执行逻辑,而是与服务通信,并使用数据提供视图并管理程序流。
但是您应该收到服务的一些回复。
在您的示例中,它可能意味着一些枚举值或布尔值,以确定用户的创建是成功还是任何事情...... 然后,您可以让控制器管理接下来的视图以及它获得的数据......