ASP.NET – 如何向服务器发出AJAX请求而不获取我所有更新面板的信息响应?

例如,我在页面上有三个UpdatePanel。 我单击一个按钮,我得到很长的响应,它包含三个UpdatePanels的所有数据,即viewstate字符串。

我想优化我的查询并收到“ok”或“not ok”等响应。 我怎样才能做到这一点?

简短的回答是,使用MS Ajax,特别是UpdatePanels,你不能。

答案很长:

UpdatePanels的核心是它们完整发布,整个页面生命周期针对它们包含的任何控件运行,并且它们能够解析与页面上各个视口相关的响应部分,并仅更新这些部分。

您可以通过关闭不需要它的控件的ViewState来显着减少数据量。 另一个提示是将Panel的UpdateMode属性设置为“ Conditional ”,这样页面上的所有更新面板都不会涉及每个post。 如果您从一个面板发布并且响应刚刚更新该面板,则无需在其他面板中传输有关控件的数据。

阅读此处获取更新面板提示和技巧,以获得更好的性能。

如果你真的想用你的post做简单的消息,我会看看使用jQuery及其ajax / post方法发布到备用页面或web服务。 MS Ajax是围绕回发架构设计的,所以虽然它非常方便,但你无法轻易逃脱它的开销。