Server.Execute的使用仅导致IE9的html生成不正确

时间:2014-07-23 15:55:08

标签: html asp.net internet-explorer

问题 - 我有一个带有子div的多个div的页面,在其中一个子div中,我正在调用server.execute。 在IE调试器中看到的IE10,IE11的html输出看起来不错但是对于IE9我将server.exe的输出分成两部分,导致页面渲染不正确。 页面源看起来是一样的。

详情 - aspx页面布局是这样的 - ....

<form id="mainform">
...
...
<div id="main" >
    <div id="child1" >   
    </div>
    <div id="child2" >
       <div id="child22" >
           Server.Execute("abc.aspx", StringWriterObj, True)
           Response.Write(StringWriterObj)
       </div>
    </div>
    <div id="child3" >   
    </div>
</div>
</form>

从视图源看到的HTML输出看起来很相似,我没有使用工具进行比较。 但IE浏览器中看到的浏览器解释HTML输出在IE9和IE10中有所不同。 对于IE 10,调试器只显示一个id为“main”的div元素,如上面的代码所示。但对于IE9,调试器显示两个具有相同ID“main”的div元素,如下所示 -

在IE10的调试器中看到的页面DOM -

<form id="mainform">
...
...
<div id="main" >
    <div id="child1" >   
    </div>
    <div id="child2" >
       <div id="child22" >
           <Element1>
           <Element2>
       </div>
    </div>
    <div id="child3" >   
    </div>
</div>
</form>

在IE9的调试器中看到的页面DOM -

<form id="mainform">
...
...
<div id="main" >
    <div id="child1" >   
    </div>
    <div id="child2" >
       <div id="child22" >
           <Element1>
       </div>
    </div>
</div>
</form>
<div id="main" >
    <div id="child2" >
       <div id="child22" >
           <Element2>
       </div>
    </div>
    <div id="child3" >   
    </div>
</div>

从IE9的上述输出中可以看出,div id“main”存在于form标签内部以及外部,并且包含部分来自Server.Execute()中调用的页面的元素以及呼叫页面。

我希望问题很清楚。 任何人都面临类似的问题。任何提示或想法都会非常有用。 感谢

1 个答案:

答案 0 :(得分:0)

上面的问题在我删除了上面的Server.Execute方法调用的abc.aspx页面中的html表单标记后解决了。