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

Does asp.net PageMethods(web method) triggers a postback?

我想根据描述的问题做出一个决定。我已经在客户端代码中使用了 PageMethods。如果它触发回发,那么我想用来自客户端的 ajax 调用替换它。有人可以澄清一下吗?

给定页面的 Web 方法在被 ajax 调用客户端调用时不会导致 post-back。但是,请记住,此类 Web 方法不能引用页面上的任何控件,也不能使用 ViewState。您可以在网络方法中使用 session()。

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

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

但是,网络方法?没有返回第 post 页。你经常需要这个,因为 jQuery.UI 弹出对话框可以显示东西,但是如果那个对话框需要服务器端代码,那么你就不能有 post-back(从那时起对话框会崩溃,因为你获得一个新的重新呈现的页面。甚至使用更新面板也会折叠对话框。

但是,如果您没有显示弹出对话框?然后只需使用更新面板就可以减少工作量和精力,而不必费心将 ajax 调用连接到 Web 方法。

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

因此,请先查看更新面板 - 通常工作量较小。

但是,如果您只需要服务器的一些值,不想要 post-back,也不想要(或不能使用更新面板),那么一个 web方法是很好的选择。 (因为没有 post-back 发生)。 Web 方法的最大缺点是不使用控件或网页中的任何内容都可以用于 ajax 对 Web 方法的调用(因此,您必须拥有客户端所需的数据,或者通过服务器端网络方法的一些值。

页面方法也不会导致 post-back。