asp.net-mvc - 如何将复杂的 ViewModel 传递给 ASP.NET MVC 中的服务层?

标签 asp.net-mvc service-layer

假设我有用于用户注册的 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 对象的逻辑应该在哪里

最佳答案

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

关于asp.net-mvc - 如何将复杂的 ViewModel 传递给 ASP.NET MVC 中的服务层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5053248/

相关文章:

sql-server - 将 Dictionary<string,int> 传递给存储过程 T-SQL

asp.net - Fluent NHibernate,动态改变映射表?

java - JSF 服务层

java - 服务层在 spring 应用程序中绑定(bind)到 DB 技术

maven-plugin - SoapUI Maven 插件——执行多个项目

asp.net-mvc-3 - 将经过身份验证的用户依赖注入(inject)我的存储库类的正确方法

c# - 无法向 Unity 和 Entity Framework 注册 DbConnection

c# - 从 AntiForgeryToken() 获取原始值(不是 html)

c# - 了解 C# 中的异步和等待

php - 我应该为每个 Controller 的每个功能使用服务还是直接在 Controller 中使用模型?