Asp.net 为什么我必须强制使用自动回邮=";真的;?

Asp.net 为什么我必须强制使用自动回邮=";真的;?,asp.net,code-behind,autopostback,Asp.net,Code Behind,Autopostback,ASP.net 2.0、Visual Studio 2005和标准控件(如等)要求我输入AutoPostBack=“true”,以便调用隐藏的代码。但是为什么呢?这不应该发生吗? 谢谢另一种选择是他们只调用javascript(在客户端),而不是往返服务器(回发) Javascript速度更快,因为它位于客户端,不需要往返服务器,但用户可以禁用或更改它 代码隐藏在服务器上运行。HTML代码和Javascript在浏览器上运行 dropdownlist是在浏览器上运行的HTML元素。如果不将数据发

ASP.net 2.0、Visual Studio 2005和标准控件(如
等)要求我输入
AutoPostBack=“true”
,以便调用隐藏的代码。但是为什么呢?这不应该发生吗?
谢谢

另一种选择是他们只调用javascript(在客户端),而不是往返服务器(回发)


Javascript速度更快,因为它位于客户端,不需要往返服务器,但用户可以禁用或更改它

代码隐藏在服务器上运行。HTML代码和Javascript在浏览器上运行

dropdownlist是在浏览器上运行的HTML元素。如果不将数据发送回服务器,它无法在服务器上执行任何操作。ASPX web表单向服务器发送数据的方式是通过回发


有时,您不希望dropdownlist向服务器发送数据。它真的减慢了用户体验,因为用户必须等待某些东西出现。要加快速度,可以禁用列表控件上的回发;只有当用户发布整个表单时,才会联系服务器。此时,服务器可以检查列表控件,查看其值是否已更改并采取措施。

不,无论如何都不应该发生这种情况

asp:DropDownList
是一个生成单个下拉列表的控件。这将作为
select
标记呈现给客户端。
select
标签通常用于收集用户的输入,而不是提交表单


强制执行
AutoPostBack=“true”
是必要的,因为无论何时所选索引发生更改,都会导致回发。虽然这可能很有用,但这并不是
select
标记的预期行为,大多数开发人员都不希望此操作。。。出于性能原因。。。或者,如果它是更大表单的一部分,它将中断用户流。。。等等,这就是我问这个问题的原因。如果dropdownlist导致某些行为,那么默认情况下,该“行为”不应该出现在服务器上吗?这就是ASPX开发的全部内容——客户端与代码隐藏进程(毕竟是客户机-服务器技术)的接口。
select
的行为是允许客户机选择某些内容,而不是回发。使用此设置轻松地进行回发是一种方便。不过,一旦您更加熟悉javascript和AJAX,您可能就不会使用此设置了。