我对MVC比较陌生,刚刚遇到一些预先存在的代码。
我们有一个UserService,它主要包含CRUD操作,也许还有一个或两个业务逻辑操作 - 我们的控制器都需要它们。它封装了上下文和成员资格。
我即将实施ResetPassword操作,但我不知道在哪里实现它;是在UserService还是在User Entity上实现它。
UserService
bool ResetPassword(string username, string newPassword);
这将导致我的控制器:
ActionResult ResetPassword(string username, string newPassword)
{
userService.ResetPassword(username, newPassword);
}
VS
用户
bool ResetPassword(string newPassword)
这将导致我的控制器:
ActionResult ResetPassword(string username, string newPassword)
{
var user = userService.GetUser(username);
user.ResetPassword(newPassword);
}
建议使用哪种方法?
答案 0 :(得分:0)
您应该始终从业务逻辑中分离数据,因此您应该通过业务逻辑修改控制器中的用户对象(数据层)(表示层 - 是视图,视图模型和控制器都是表示层的一部分)图层即UserService!
答案 1 :(得分:0)
我会建议第二种方法,你必须获益。