Form最重要的属性就是action和method,action指明form中的数据被提交到哪里,method指明用什么方法,默认为GET,下面是一个简单的例子:html
<form action="/Home/Search" method="get"> <input name="q" type="text"/> </form>
若是使用 ASP.Net MVC , Home/Search每每表示HomeController的Search 方法,配合MVC使用时,若是直接也这样的HTML代码有以下几个问题:若是整个网站要改变Route的规则,将至改成/Search/Home,也就是Controller在后面,咱们就得该这段HTML代码。虽然不会很常常,可是也有可能,若是使用Html.BeginForm辅助方法,就不用担忧这个问题了。mvc
public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName, RouteValueDictionary routeValues, FormMethod method, IDictionary<string, object> htmlAttributes);
BeginForm有不少使用默认值的重载方法,就不一一介绍了, 上面这个是的一个最全的方法,分别介绍各个参数的意义吧。网站
BeginForm有两种使用方法,之一:this
@using (Html.BeginForm("Search", "Home", FormMethod.Get)) { <input name="q" type="text" /> }
之二:orm
@{Html.BeginForm("Search", "Home", FormMethod.Get);} { <input name="q" type="text" /> } @{Html.EndForm();}
用哪一个就看我的喜爱了。csrf
HTML的辅助方法有不少,下面一一介绍。htm
@Html.AntiForgeryToken()blog
这是用来防止CSRF(Cross-Site Request Forgery),这篇文章详细介绍了这个辅助方法。token