IE9 дублирует содержимое главной страницы - PullRequest
3 голосов
/ 11 апреля 2011

Создайте новый проект asp.net webforms.Добавьте главную страницу и страницу веб-форм, которые используют эту главную страницу.

главная страница

<%@ 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>

страница веб-форм

<%@ 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.

снимок экрана http://dl.dropbox.com/u/1994980/IE9_duplicate_content.PNG

Это происходит только с

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

блок там.Если удалить его, то все нормально.

Весь проект заархивирован

Ответы [ 2 ]

3 голосов
/ 11 апреля 2011

Вложенные теги формы создают недопустимый HTML, и рендеринг, который вы видите в IE9, весьма вероятен в результате этого. DOM, который вы видите в инструментах разработчика, - это то, что отображается, а не как ответ HTTP

3 голосов
/ 11 апреля 2011

Как правило, ASP.NET работает на основе одного тега формы.То, что вы видите симптомы, которые вы делаете, а не явную ошибку - действительно единственная удивительная часть.Таким образом, вы не должны пытаться вложить теги формы.От самого нижнего мастера до самой внешней производной страницы должен быть только один тег формы.


Обновление

Это определенно похоже на ошибку в IE9.Если вы используете Fiddler для просмотра фактической разметки, отправляемой по сети, код не дублируется.

...