vici mvc开发第六篇——Form Basics

一、Form Basics

普通的web框架是没有简单并且灵活的形式处理,但是VICI提供了这些,远远地抛弃了在asp.net中臭名昭著的视图状态。

二、How forms work in Vici MVC

在HTML中form是定义在<form>标签内的控件集合,它可以通过点击<submit>按钮提交到服务器。若要查看发布窗体的内容,您可以可以阅读 PostData 集合,其中直接映射到 ASP.net的 Request.Form 集合。 虽然这是一种查看表单数据的简便方法,如果您要在窗体中设置控件的初始数值,并在回发间保持控件的状态的值,那么它就会变得复杂。

在VICI MVC中,这些受 WebForm类的管理。您只需创建一个 WebForm 派生的类,并且添加成员用于检索和在html中可以显示。告诉MVC那种类型的控件应呈现该成员和应该做什么样的验证。

模版应该这么写:

What happens in the controller's action method is:

1、WebForm派生类建立了俩个<textbox>

2、这俩个<textbox>默认值都为空

3、form通过bind()方法绑定到当前视图

4、当form表单提交到服务器 Validated属性将返回真

5、当第一次控制器方法执行的时候Validated属性为假,form正常显示(也就是第一次载入不执行返回值处理)

6、当用户点击submit按钮后,处理方法将执行bind()方法将会返回由用户输入的值。

7、Validated返回真,并且正常显示result

三、Setting the initial values of the controls

若要设置窗体的初始数值,你应该重写 WebForm 类的 OnFill 方法。第一次,将调用此方法显示窗体。

四、 Retrieving user input (postback)

你可以在任何时候让 HTML 窗体提交到原始 URL。通过这种方式的 WebForm 派生的对象将正确处理用户输入的数据和被保留的状态。

要捕获发布的数据,您不必做任何事情。你只需要检查 WebForm 类的验证属性,如果那是真的,窗体已经提交,并且用户输入已经经过验证。 捕获发送的字段的另一种方法是通过重写的 OnPost 方法。此方法已经经过验证,当所以的验证都为真时他的一个参数也为真。当您将一个窗体对象绑定到一个从数据库中读取的数据对象时,通常可以使用这种情况下:

在您的控制器类中您应该这么写


请注意到了 MVC 2.0 版中有没有自动数据绑定。应将从代码中的数据对象的值设置窗体的字段。这是有可能将框架的下一版本中添加的功能。

五、 Input validation

如上文所述,MVC 在窗体对象上执行验证。有 3 种方式来验证窗体,以及他们可以随意组合:

  • Validation attributes on fields
  • Validation methods for specific fields
  • Validation method for the complete form

Validation的具体内容我们会在下一章讲

六、Supported controls

  • [FormTextBox]
  • [FormDropdown]
  • [FormPassword]
  • [FormEMail]
  • [FormHidden]
  • [FormCheckbox]
  • [FormDate]
  • [FormMemo]
  • [FormRadioButton]

你可以建立自己controls把它绑定到窗体。

七、Binding data to list controls

现在我们只是会简单的textbox,如果是 dropdown或者其他的控件我们该这么办了?

为此目的,我们可以重写OnBind()方法。该方法会在视图呈现前调用。这也意味着窗体的类中的字段已经有了正确的值(初始化的 OnFill 或用户提交的)和实际的控件也已创建。

每个控件都有一个数据源的属性,应设置为该控件所需的数据

例如:

如果您想直接访问该控件,您可以读取该字段的控件属性:

八、 Styling controls with CSS

[[ControlName]]这是基本的表示方法,还有更复杂的:

[[ControlName:CssClass:CssClassError]]

 

未完待续:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值