我是MVC& C#,只是看着在我的网站上做一个表格。
我看到我可以使用html.beginform,也可以只使用标准的html。 似乎网上的每个人都在使用html.beginform,但我无法理解其优势。在我看来,使用beginform只是服务器渲染html的额外工作。
答案 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标签。
就表现而言,没有区别。这完全取决于个人偏好。