cbp*_*cbp 12 .net c# asp.net render
有人可以解释一下这里发生了什么.
我有以下标记:
<html>
<head runat="server">
<title>My title</title>
<my:MyControl runat="server" ID="myControl" />
</head>
...
Run Code Online (Sandbox Code Playgroud)
我的自定义控件是这样的:
public MyControl : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<script>this is my script</script>");
base.Render(writer);
}
}
Run Code Online (Sandbox Code Playgroud)
渲染页面时,整个头部的上半部分被切掉,所以html呈现如下:
<html>
<script>this is my script</script>
</head>
Run Code Online (Sandbox Code Playgroud)
解决方法是在base.Render之后调用writer.Write,如下所示:
base.Render(writer);
writer.Write("<script>this is my script</script>");
Run Code Online (Sandbox Code Playgroud)
为什么?!
UPDATE
我对这个问题的兴趣感到惊讶!
我发现为什么我的头标记的顶部被移除 - 这是一个HttpHandler的错误,我用来'清理'html(它将脚本移动到底部等).
这仍然无法解释为什么更改渲染方法的顺序会导致错误消失,但我确信这一切都有合理的解释!
您只是用从函数返回的内容覆盖您的正文内容:
<script>this is my script</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |