1.使用模型绑定
第一个 RsvpForm 动作方法渲染了对应的视图——RsvpForm.cshtml 文件,生成了对应的表单。
第二个 RsvpForm 动作方法已经给定是响应 HTTP 的 POST 请求而被调用的。通过一个非常有用的 MVC 特性——模型绑定,可以解析输入数据,并将 HTTP 请求中的 “键/值” 用来填充域模型类型(GuestResponse)的属性。——这一过程与使用 HTML 辅助器的方法是相反的——在创建发送给客户端的表单数据时,生成的是 HTML 的 input 元素,其中的 id 和 name 标签属性的值来自于模型类的属性名(这里描述的是 HTML 辅助器的作用——将模型数据转换成 HTML 信息,即采用“模型→HTML”的方式进行数据转换)
与此相反,对于模型绑定,会用 input 元素的名称和值来设置模型类实例中属性的值,以便通过用户在表单的各个 input 元素及其输入的值来构造一个模型类实例。然后,该实例被传递给处理 POST 的动作方法。——故,模型绑定是利用表单元素及其输入的数据来创建模型对象,即采用“HTML→模型”的方式进行数据转换。所以说,模型绑定与辅助器方法的作用是相反的。
模型绑定是一个功能强大且可定制的特性,它消除了直接处理 HTTP 请求的繁琐,使开发者能够使用 C#对象进行工作,而不是处理 Request.Form[ ] 和 Request.QueryString[ ] 的值。——作为参数被传递给动作方法的 GuestResponse 对象被自动地填充了表单字段的数据。(第24章将深入探讨模型绑定的细节,包括如何对它进行定制)