html.beginform v旧skool表单标记

时间:2012-04-11 06:28:54

标签: asp.net-mvc forms html-helper html-form

使用Html.BeginForm有什么好处?

我们遇到了一些与html助手和剃须刀生成器视图测试有关的问题,我很难看到阻止我们回到旧skool表单标签的好处。

有没有人支持或反对?

老skool我的意思是:

<form action="@Url.Action('Blah')">

3 个答案:

答案 0 :(得分:2)

Html.BeginForm很有用,因为它使用Global.asax中定义的路由生成url。 (或者您可以使用自己的代码扩展它)

在我看来,使用旧标签既不是最差的也不是最好的。您只需手动生成网址或使用Url帮助程序。最后,页面中的html将是相同的

<form ....>

   html

</form>

答案 1 :(得分:2)

Html.BeginForm也实现了IDisposable,这意味着必须正确关闭表单。这可能是一个小问题,但不是关闭Html.BeginForm会产生运行时错误,而未关闭的<form>标记则不会。

答案 2 :(得分:2)

没有任何区别,表单标签只是使用路由来生成网址,所以如果你使用@Url.Action,那么你很高兴

甚至还有书籍使用普通的旧标签和网址助手来生成路线

ASP.NET MVC Website Programming就是一个例子


修改

** 从Mvc 4开始没有区别,在Mvc 4之前,Mvc 3例如要求Html.BeginForm使javascript不引人注目的验证工作