1、方法概述
// 摘要:
// 将 <form> 开始标记写入响应。在用户提交窗体时,将由某个操作方法处理该请求。
//
// 参数:
// htmlHelper:
// 此方法扩展的 HTML 帮助器实例。
//
// actionName:
// 操作方法的名称。
//
// controllerName:
// 控制器的名称。
//
// routeValues:
// 一个包含路由参数的对象。
//
// method:
// 用于处理窗体的 HTTP 方法(GET 或 POST)。
//
// htmlAttributes:
// 一个对象,其中包含要为该元素设置的 HTML 特性。
//
// 返回结果:
// <form> 开始标记。
public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName, RouteValueDictionary routeValues, FormMethod method, IDictionary<string, object> htmlAttributes);
2、实例
@using (Html.BeginForm("Index", "Search", @FormMethod.Get, new { id = "mainForm", name = "mainForm",@class="form-inline mainform"}))
{
<div class="form-group form-group-sm form-custom">
<input type="text" name="searchKeys" class="form-control" placeholder="请输入关键字" />
<input type="submit" id="submitBtn" class="btn btn-sm btn-default" value="搜索" />
</div>
}
说明:Index:操作方法的名称,Search:控制器的名称,@FormMethod.Get:定义from的method的值,new { id = "mainForm", name = "mainForm",@class="form-inline mainform"}:指定form的id,name,class属性,因class是Razor语法中的关键字所以要用@来标记。另外,还可以设置路由的参数对象,在此基础上加上new{id=“”}即可,可以为id赋值,如果指定确不赋值则可以实现防止提交链接后面自带参数。在其他htmlHelper方法中如果有object HtmlAttributes参数都可以使用new{属性=“”}的方式对生成的html元素附加属性。
3、渲染后的页面Html代码
<form action="/Search" class="form-inline mainform" id="mainForm" method="get" name="mainForm">
<div class="form-group form-group-sm form-custom">
<input name="searchKeys" class="form-control" placeholder="请输入关键字" type="text">
<input id="submitBtn" class="btn btn-sm btn-default" value="搜索" type="submit">
</div>
</form>