提交表格的两种方式?

时间:2013-08-27 10:51:19

标签: javascript html asp.net forms submit

AFAIK提交表格有两种方式。

例如:asp.net具有Button.UseSubmitBehavior属性

  

获取或设置一个值,该值指示Button控件是否使用   客户端浏览器的提交机制或 ASP.NET 回发机制。

如果该值设置为false,则会生成以下脚本以提交表单。

//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>

问题:

但是,如果它使用 ASP.NET回发机制 - 它是如何完成的?

  • 提交表单的两种方法之间的差异是什么?

1 个答案:

答案 0 :(得分:0)

不使用回发的方法是使用浏览器的提交机制完成的。想象一下,页面上的标准HTML表单包含action和method属性。像这样:

<form action="server_script.asp" method="post">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>

然后回发方法的工作原理如下。来自Microsoft的文档:

  

如果指定false,则ASP.NET页面框架将客户端脚本添加到页面以将表单发布到服务器。

此机制使用提交表单的脚本(可能是js)覆盖浏览器提交机制。我从来没有使用过ASP.NET,但我想它会为你生成一些AJAX代码,它将表单提交给服务器。这样做的一个优点是浏览器不会重定向到任何地方提交表单。浏览器停留在一个页面上,脚本以静默方式将数据提交给服务器。