是否asp.net PageMethods(web方法)触发回发?



我想根据所描述的问题做出一个决定。我已经在客户端代码中使用了PageMethods。如果它触发回发,那么我想从客户端用ajax调用取代它。有人能解释一下吗?

当ajax调用客户端调用给定页面的web方法时,不会引起回发。但是,请记住,这些web方法不能引用页面上的任何控件,也不能使用ViewState。您可以在web方法中使用session()。

通常,在某些情况下,您可以采用更新面板,并将控件放在该更新面板中,因此当您单击按钮或控件中的任何事件代码时?

那么你不会得到也不会看到完整的页面回复。因此,更新面板通常是防止整个页面返回的好方法。但是,请记住,更新面板确实会导致部分页面回发,甚至您的页面加载事件再次触发。

但是,web方法?没有页面回发发生。您经常需要这个,因为jQuery。UI弹出对话框可以显示内容,但如果该对话框需要服务器端代码,那么您就不能进行回发(因为这样对话框将崩溃,因为您将获得一个新的重新渲染的页面)。甚至使用更新面板也会使对话框崩溃。

然而,如果你没有弹出对话框显示?然后,它更少的工作和努力,只是使用一个更新面板,而不是麻烦的所有工作,以连接一个ajax调用到一个web方法。

所以,在大多数情况下,我不会花时间和精力来构建ajax调用。

所以,先看看更新面板-通常更省事。

但是,如果你只是需要一些来自服务器的值,不想要post-back,不想要(或者不能使用更新面板),那么web方法是一个很好的选择。(因为没有回发发生)。web方法的一大缺点是,在ajax调用web方法时,无法使用控件或网页中的任何内容(因此,您必须拥有客户端所需的数据,或者将一些值传递给服务器端web方法)。

pagememethod也不会导致回发。

最新更新