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),这篇文章详细介绍了这个辅助方法。