Form辅助方法
Form最重要的属性就是action和method,action指明form中的数据被提交到哪里,method指明用什么方法,默认为GET,下面是一个简单的例子:
<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辅助方法,就不用担心这个问题了。
public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName, RouteValueDictionary routeValues, FormMethod method, IDictionary<string, object> htmlAttributes);
BeginForm有很多使用默认值的重载方法,就不一一介绍了, 上面这个是的一个最全的方法,分别介绍各个参数的意义吧。
BeginForm有两种使用方法,之一:
@using (Html.BeginForm("Search", "Home", FormMethod.Get)) { <input name="q" type="text" /> }
之二:
@{Html.BeginForm("Search", "Home", FormMethod.Get);} { <input name="q" type="text" /> } @{Html.EndForm();}
用哪个就看个人喜好了。
HTML辅助方法
HTML的辅助方法有很多,下面一一介绍。
@Html.AntiForgeryToken()
这是用来防止CSRF(Cross-Site Request Forgery),这篇文章详细介绍了这个辅助方法。