zoukankan      html  css  js  c++  java
  • 使用UpdatePanel后如果在Render中篡改输出的html代码问题解决方案

    我想在Render时对页面的所有{}中的内容进行修改替换,当使用了UpdatePanel进行异步回发之后,会报一个这样的错误:

    这里我们先重温了一下UpdatePanel的原理:首先ScriptManager和UpdatePanel在服务器端达成一致,截获了Page的Render()方法并在页面上为需要进行异步回送的控件输出了一些专门的JavaScript脚本。然后在客户端,若这些控件通过_doPostBack()函数试图引发整页的回送,则上面提到的JavaScript脚本将截获这个调用,并将页面中各个用户输入的控件的值,加上当前的试图状态 (ViewState)用XMLHttpRequest对象发送服务器。而此时服务器却对此丝毫不知,仍把它当作一次传统的回发,老老实实地引发了一次完整生命周期,并根据回送生成新的页面结构。随后又是在Page的()方法中,ScriptManager和UpdatePanel再次获取了其中的实现过程,把不在UpdatePanel中的内容统统踢出,只发送给客户端震泽更新的部分。最后,客户端的XMLHttpRequest对象收到了这部分信息,并在不知不觉悄悄地更新了UpatePanel中定义的内容。
    所以我想可能是返回给客户端的内容中有保持文件一致性的内容,我们先看一下回发到客户端的html内容

    Code

    开始我以为这个保持一致的内容可能是在后边的viewstate中,经过对起解码(使用这个工具解码)并没发现什么有价值的东西,正在我一筹莫展时,一个兄弟终于揭开了谜团,原来第一个|前的这个数字是回发的字符串长度,就是我们上边那个例子中718,我们篡改内容时必须要重新计算这个数字,把程序改下:

    Code
  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1380285.html
Copyright © 2011-2022 走看看