2

有什么作用Html.BeginForm()和必要性?

4

3 回答 3

5

本质上,它输出一个

<form>

标记到 HTML 输出中。如果您的页面 POST(即按下按钮提交表单),则需要表单标签,以便浏览器知道在哪里提交表单。它现在可能对您有用的原因是因为您可能没有任何按钮 - jsut 链接(我不知道您的应用程序是什么,所以只是在这里猜测)。

简而言之:如果您希望能够将表单提交给操作,是的,该标签是必需的。如果您通过链接完成所有操作,则不需要表单标签,因此实际上不需要 BeginForm。

HTH。

PS 阅读 Scott Guthrie 在 ASP.NET MVC 上的博客文章,它们确实对您入门有很大帮助。

于 2009-09-17T23:25:47.503 回答
3

BeginForm() 只是使用提供给它的参数写出表单标签。如果您没有表单,或者您正在使用 AJAX 进行所有页面交互,您可能不需要它。如果页面上只有链接,则不需要表单。但是,除非您使用 AJAX,否则您不能在不使用它来注入您的表单标签或手动注入您的表单标签的情况下对控制器操作执行 POST 请求。

于 2009-09-17T23:24:41.250 回答
0

根本没有必要。它只是一个处理设置表单标签的助手。不过使用它是个好主意。我的直觉是他们会增强这个助手来处理诸如 XSS 攻击等你目前必须使用 AntiForgeryToken 助手和相关属性来处理的事情。

于 2009-09-17T23:23:06.873 回答