0

Asp.net(Webforms)中的请求-响应模式是否与 MVC 世界中传递和返回的“模型”相同(或相似)。基本上,如果所有请求/响应类都包含一些与请求或响应相关的属性并且实际上可以放置在模型中,那么是否仍然需要使用请求/响应(即创建单独的请求和响应类)模式,例如

LoginRequest.cs contains   
string Username { get; set; }

LoginResponse.cs contains 
string AuthenticationTicket { get; set; }

而 LoginModel.cs 会有

string Username { get; set; }
string AuthenticationTicket { get; set; } 

在 MVC 世界中哪个更好用?

谢谢。

4

2 回答 2

0

有人可能会争辩说,根据您查看的级别,它们都是相同的,因为您有一个请求(带有上下文参数的回发/通过模型绑定器绑定的模型)和一个响应(更改响应对象/基于 viewmodel 渲染视图) 在每个请求中,但在另一个层面上,它们是根本不同的,因为 Web 窗体被认为对 Windows 窗体开发人员来说是自然的,而 MVC 是,IMO,一个更成熟且具有更好的 Web 框架的 SoC 架构。

在处理 MVC 应用程序时,我通常选择一个代表视图模型的类和另一个对请求有意义的类,因此在用户详细信息场景中,我会有这样的事情:

public class LoginModel
{
    public string Username {get;set;}
    public string Password {get;set;}
}

public class LoginViewModel
{
    public string Username {get;set;}
    public string Fullname {get;set;}
    public string LastLogin {get;set;}
}

public ActionResult Login(LoginModel model) 
{
    /* do whatever you need */

    return new LoginViewModel { ... };
}
于 2013-02-27T12:08:14.723 回答
0

在处理 WCF 场景时,您仍然需要请求/响应 DTO。Request 实体应该是可序列化的,并且包含与 MVC 视图离散的信息。另一方面,视图模型包含绑定到相关视图的信息。希望这有帮助!

于 2013-08-24T14:34:50.750 回答