请求 - 响应模式mvc

时间:2013-02-27 11:45:50

标签: c# asp.net-mvc request response

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世界中使用?

感谢。

2 个答案:

答案 0 :(得分:0)

有人可能会争辩说,根据你看到它的级别,它们都是相同的,因为你有一个请求(带有通过模型绑定器绑定的上下文参数/模型的回发)和响应(更改响应对象/呈现视图)在每个请求中都基于viewmodel),但在另一个层面上它们是根本不同的,因为webforms被认为是Windows窗体开发人员自然而然的,而IMC是一个更成熟,更好的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 { ... };
}

答案 1 :(得分:0)

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