Html.BeginForm与表格 - 哪个更好,为什么?

时间:2018-04-06 01:21:55

标签: c# asp.net-mvc

我是MVC& C#,只是看着在我的网站上做一个表格。

我看到我可以使用html.beginform,也可以只使用标准的html。 似乎网上的每个人都在使用html.beginform,但我无法理解其优势。在我看来,使用beginform只是服务器渲染html的额外工作。

2 个答案:

答案 0 :(得分:0)

Asp.Net MVC BeginForm知道RouteConfig中定义的路由。 ASP.NET路由模块负责将传入的浏览器请求映射到特定的MVC控制器操作。

BeginForm HTML帮助程序询问路由引擎如何到达Controller的操作。在幕后,它使用RouteTable公开的Routes属性上名为GetVirtualPath的方法 - 这是您的Web应用程序在global.asax中注册其所有路由的地方

因此,将来,即使您更改了该控制器和操作的路由映射,它也会在html中正确设置表单标记的操作。

对于其他帮助程序(如Html.ActionLink)的类似情况,它会生成知道已定义路径的超链接。

答案 1 :(得分:-1)

html.beginform将在大括号内为您包装HTML内容,它还可以帮助您指定“控制器”和“轻松”操作。

Html.beginform("Action", "Controller", "Method") {
  // HTML controls here
} // Simulates a </form> tag

如果你要使用普通的FORM标签,那么你必须对URL进行硬编码并自己关闭FORM标签。

就表现而言,没有区别。这完全取决于个人偏好。