Не могли бы вы объяснить, что здесь происходит.
У меня есть следующая разметка:
<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>");
Почему?
UPDATE
Я удивлен количеством интересующих вас вопросов!
Я узнал, почему верхняя часть моего тега заголовка удаляется - это была ошибка с HttpHandler, которую я использую для "очистки" html (он перемещает скрипты на дно и т.д.).
Это все еще не объясняет, почему изменение порядка метода render приведет к исчезновению ошибки, но я уверен, что для этого есть логическое объяснение!