我在页面加载事件中使用c#.net创建了网站
protected void Page_Load(object sender, EventArgs e)
{
string s = "completed.";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s);
Response.OutputStream.Write(bytes, 0, bytes.Length);
}
当我在浏览器中运行时,我得到了正确的响应
Completed.
现在我的问题是当我通过休息客户端运行相同的url时,我得到的响应nody [raw]为
completed.
<!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><title>
</title></head>
<body>
<form method="post" action="Default.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZJy1PJCY5kS9nkQAfBTgrw0zeG/yMEs2VJP+7kbHC2Yp" />
</div> <div> </div> </form></body></html>
但我需要完成。作为回应
怎么可能?
等待您的宝贵意见和建议
答案 0 :(得分:3)
尝试使用:
Response.Clear();
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.End();
答案 1 :(得分:1)
尝试清除回复。
protected void Page_Load(object sender, EventArgs e)
{
string s = "completed.";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s);
Response.Clear();
Response.OutputStream.Write(bytes, 0, bytes.Length);
}
如果这样做无效,请使用方法OnRender。在Page_Load之后的页面生命周期中有一些方法,我认为OutputStream也在那里被修改。
答案 2 :(得分:1)
在page_load中输出到响应流将导致输出的任何内容成为响应中的第一个内容。
这就是为什么你在其他版本的响应中看到“已完成”的原因。
我几乎可以保证你也会在浏览器版本中得到这个,但浏览器试图屏蔽你,你试过在html上查看源代码吗?
我觉得清除响应可能没有帮助,因为当页面点击其on_prerender事件时,它将呈现所有表单控件/母版页等,并且它会将该块添加到页面中。
你是否考虑过使用mvc / webapi来实现你所看到的更轻量级版本。