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语句代替它