Не могли бы кто-нибудь объяснить, что здесь происходит.
У меня следующая разметка :
<html>
<head runat="server">
<title>My title</title>
<my:MyControl runat="server" ID="myControl" />
</head>
...
Мой настраиваемый элемент управления выглядит примерно так:
public MyControl : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<script>this is my script</script>");
base.Render(writer);
}
}
Когда страница отображается, вся верхняя половина головы обрезается, поэтому HTML-код отображается следующим образом:
<html>
<script>this is my script</script>
</head>
Решение состоит в вызове writer.Write. после base.Render, вот так:
base.Render(writer);
writer.Write("<script>this is my script</script>");
Почему?!
ОБНОВЛЕНИЕ
Я удивлен, насколько интересен этот вопрос!
Я выяснил, почему верхняя часть моего тега заголовка была удалено - это была ошибка HttpHandler, который я использую для «очистки» html (он перемещает скрипты вниз и т. д.).
Это все еще не объясняет, почему изменение порядка метода рендеринга может вызвать ошибку исчезнут, но я уверен, что всему этому есть логическое объяснение!