客户端浏览器的提交机制和ASP.NET回发机制有什么区别?

Ahm*_*med 3 asp.net postback submit button

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

那么,客户端浏览器的提交机制和ASP.NET回发机制有什么区别?

Sou*_*ter 7

如果将use submit behavior设置为false,则ASP.NET将生成脚本以通过调用"__doPostBack"方法来处理提交,如下面的代码所示.该方法将为事件目标增加值,以告知服务器哪个元素触发当前事件.

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

<input type="button" name="Button1" value="Submit" onclick="javascript:__doPostBack('Button1','')" id="Button1">      
Run Code Online (Sandbox Code Playgroud)

另一方面,如果将use submit behavior设置为true,ASP.NET将生成按钮作为输入类型submit而不是type按钮.使用时单击此按钮,表单通常会被提交.

<input type="submit" name="Button1" value="Submit" id="Button1">
Run Code Online (Sandbox Code Playgroud)

两种方式在服务器端都没有区别.但是如果你将使用提交行为设置为true,它将生成更清洁的XHTML.