2011-04-11 78 views
3

创建一个全新的asp.net webforms项目。 添加使用该母版页的母版页和webforms页面。IE9正在复制母版页内容

母版页

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="AspWeird.Site1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <div id="main_content_container"> 
      <div id="main_content_row"> 
       <div id="main_content_column"> 
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 

     </asp:ContentPlaceHolder> 
       </div> 

       <div id="side_content_column"> 

       </div> 
      </div> 
     </div> 

    </div> 
    </form> 
</body> 
</html> 

web表单页面

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AspWeird.WebForm1" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
<h2>Hello World</h2> 

<div> 
    <form></form> 
</div> 

</asp:Content> 

现在,在IE9浏览网页和打开F12开发人员工具

如果你看看你会看到一部分的母版页看起来像是在DOM中的两次... 检查网络捕获服务器看起来正在返回正确的HTML。 使用Firefox或Chrome没有任何问题。

screenshot http://dl.dropbox.com/u/1994980/IE9_duplicate_content.PNG

这只有在那里

<div><form></form></div> 

块发生。如果你删除它,一切都是正常的。

Whole project zipped up

+8

我不知道这是否与问题有关,但我认为您不应该拥有嵌套的表单标签。 – 2011-04-11 15:54:49

+0

我只有在asp.net项目中出现在IE9中的问题。太奇怪了。当我发现它正在复制我的工具提示标记时,我正在尝试使用z-index。 – 2011-09-27 20:48:59

回答

3

一般情况下,ASP.NET工作原理基于单一形式的标签。你看到你所做的症状,而不是一个彻头彻尾的错误,真的是唯一令人惊讶的部分。因此,你不应该试图嵌套表单标签。从最低版本到最外面的派生页面应该只有一个表单标签。


更新

这肯定看起来像IE9的错误。如果您使用Fiddler查看通过线路发送的实际标记,则代码不会重复。

+1

MVC中的多个'

'没有什么问题,但它们不应该嵌套。 – SLaks 2011-04-11 16:06:02

+0

是队长明显我知道不是嵌套形式标签。因为webforms中的所有内容都嵌套在表单中,所以在我注意到这种行为的特定情况下,无法帮助(没有太多工作)。我之所以发布这是因为IE做了一些非常奇怪的事情,我想找出原因。 – chrisortman 2011-04-11 16:44:48

+0

@chrisortman - 您的OP指出这发生在IE9中。这是否意味着这种行为在其他浏览器(例如FF或Chrome)中不会发生? – Thomas 2011-04-11 17:04:16

3

嵌套的表单标签会导致无效的HTML,并且您在IE9中看到的呈现很可能是由此造成的。您在开发人员工具中看到的DOM是呈现的不是接收到的作为HTTP响应的东西