7

假设我有用于用户注册的 RegisterModel 和一些实现 IUserService 的 UserService

public interface IUserService
{
   User CreateUser(User newUser);
}


[HttpPost]
public ActionResult Register(RegisterModel model)
{
            if (ModelState.IsValid)
            {

                // ... logic for newuser

                User user = _userService.CreateUser(newuser);

               _authenticationService.SetAuthenticatedUser(user);

                return RedirectToRoute("Homepage");
            }

            return View(model);
        }

鉴于 RegisterModel 可能非常复杂,将 RegisterModel 映射到 User 对象的逻辑应该在哪里

4

1 回答 1

16

您永远不会将视图模型传递给服务。服务甚至不知道您可能在 GUI (ASP.NET MVC) 层中定义的视图模型的存在。服务与域模型一起工作。我个人使用AutoMapper在视图模型和模型之间进行映射,反之亦然,所以这个逻辑进入映射层。

于 2011-02-19T20:18:13.467 回答