HtmlHelper类位于命令System.Web.MVC.Html之中,主要有7个静态类组成,他们分别是 FormExtensions、InputExtensions、LinkExtensions、SelectExtensions、TexAreaExtensions、ValidationExtensions、RenderPartialExtensions类。

 

FormExtensions类

FormExtensions是一个静态类,它定义了3种类型的扩展方法,在视图中设置表单和表单路由器的定义,他们分别是:BeginForm、BeginRouteForm、EndForm.

在开发中也可以使用using语句,而不需要写EndForm扩展方法。

BeginForm有13个重载方法

这个重载方法BeginForm(objectroute Values)可设置代码如下

 

Html.BeginForm(new{action="action",controller="controller",id=1})这是设置了一个路由
值的实例化对象,对应得Html如下:
<from action="/controller/action/1" method="post">
可以看出根据视图页面设置了路由,构造了“/controller/action/1"的路由,默认表单提交是Post

 

重载方法BeginForm(string actionName,string ControllerName,RouteValueDictionary routeValues,FormMethod method)可设置代码如下

 

Html.BeginForm("ActionName","ControllerName",FormMethod.Post,new{method="Get"})
在第三个参数和第四个参数都设置了Method的值
对应得Html如下:
<from action="/ControllerName/ActionName" method="post">
设置的俩个Method只有第三个有效因为FromMethod.Post值的优先级别高。
可以在多个地方设置action参数,不过htmlAttributes中所设置的优先级别最高。

 

 
BeginRouteForm 有12个重载方式
重载方法BeginRouteForm(object routeValues)可设置如下代码
Html.BeginRouteForm(new{action="action"})
上面一句设置了action的值对应的Html语句如下
<form action="/Home/action"method="post">
这里和BeginForm之间是有区别的,BeginForm的action为”action“,
不是"/Home/action"

 

EndForm 

EndForm扩展方法主要是表单结束定义的代码如下:

Html.EndForm()
对应的HTML语句是</form>
开发者可以使用using语句代替它

 



 

posted on 2010-11-25 18:12  异样的世界  阅读(1653)  评论(0编辑  收藏  举报