我需要覆盖页面的 Render 方法并在渲染之前使用输出 html 进行一些操作。但是在尝试执行最简单的操作时,我遇到了一些奇怪的问题。对于调试建议,我添加了如下代码:
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
if (Request.QueryString["test"] == "test")
{
StringBuilder sb = new StringBuilder();
base.Render(new HtmlTextWriter(new StringWriter(sb)));
writer.Write(sb.ToString());
}
else
{
base.Render(writer);
}
}
现在,如果 URL 中有 ?test=test ,则输出 HTML 将被破坏。响应 HTML 开头为:
VM-SP\administrator<script type="text/javascript">
//<![CDATA[
var _spUserId=1;
//]]>
</script>
<!DOCTYPE html ...
如果 URL 中没有 ?test=test ,则响应 HTML 以:
<!DOCTYPE html ...
'VM-SP\administrator' 是当前用户的名称。为什么输出不一样?这段代码有什么问题?