0

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 回发机制——它是怎么做的呢?

  • 这两种提交表单的方法有什么区别?
4

1 回答 1

0

不使用回发的方法是通过浏览器的提交机制完成的。想象一下页面上有一个标准的 HTML 表单,带有操作和方法属性。像这样的东西:

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

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

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

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

于 2013-08-27T11:21:07.423 回答