Как передать сложную ViewModel в Service Layer в ASP.NET MVC? - PullRequest
6 голосов
/ 19 февраля 2011

Скажем, у меня есть RegisterModel для регистрации пользователя и некоторые UserService, которые реализуют IUserService

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 на объект пользователя

1 Ответ

15 голосов
/ 19 февраля 2011

Вы никогда не передаете модель представления в сервис.Служба даже не знает о существовании модели представления, которую вы, возможно, определили на своем уровне GUI (ASP.NET MVC).Сервис работает с моделями доменов.Лично я использую AutoMapper для отображения между моделями представления и моделями и наоборот, поэтому эта логика входит в слой отображения.

...