Получить ответ в виде строки C#.net
Я создал сайт с 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.
Теперь мой вопрос заключается в том, что когда я запускаю ту же ссылку через оставшийся клиент, я получаю ответный ответ [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>
но мне нужно только закончить. как ответ
как это возможно?
Жду ваших ценных комментариев и предложений
3 ответа
Попробуй использовать:
Response.Clear();
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.End();
Вывод в поток ответов в page_load вызовет то, что вы выводите, как самое первое в ответе.
Вот почему вы видите "Завершено" в остальной версии ответа.
Я почти гарантирую, что вы также получаете это в версии браузера, но браузер пытается оградить вас от этого, вы пробовали просматривать источник в html?
У меня есть ощущение, что очистка ответа может не помочь, так как, когда страница попадает в событие on_prerender, она выводит все элементы управления формой / главные страницы и т. Д. И добавляет этот ганк на страницу.
Рассматривали ли вы использование mvc / webapi, было бы гораздо более легкой версией для достижения того, на что вы смотрите.
Попробуйте очистить ответ.
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 также там изменен.