While adding some few enhancement on an old project, ASP.NET webform-based API, I was having problem removing the HTML tag output from the API. I have written this project five years ago and I know that you can write a response from an ASPX page without the HTML tags. I simply should use the Response.Clear() or Response.ClearContent(). Response.Clear() is not working?!?!?!
Here is the code that does not output what I want.
protected void Page_Load(object sender, EventArgs e)
{
//Erases any buffered HTML output
Response.Clear();
Response.Write("Hello, API.");
}
If you view the source of the output,
Hello, API.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form method="post" action="NewApi.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="YpQKYTR2RvrptiLm1lmMsAJwJ//a75ZBpZNGl/rMG5KPseJDjWPtzsRumtqz2U5cLtK9ilxYWrQxgjcxR9VyjfQzP4W4MK8Xgdd753gdoh4=" />
</div>
<div></div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="F48D0FAC" />
</div>
</form>
<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
{"appName":"Chrome","requestId":"dacea9113ab74bf7a121e7e8599c93a5"}
</script>
<script type="text/javascript" src="http://localhost:52028/b08ad1d741774013a9875e2b2003daf7/browserLink" async="async"></script>
<!-- End Browser Link -->
</body>
</html>
Using my old arsenal of restarting and clearing cache did not work. So I did look up my old code and sure enough I forgot to write the most important line of code. The Response.End()
The working code
protected void Page_Load(object sender, EventArgs e)
{
//Erases any buffered HTML output
Response.Clear();
Response.Write("Hello, API.");
//Sends all currently buffered output
//and stops the execution of the page
Response.End();
}
And I got the correct output.
Hello, API.
So, don’t forget that Response.End();
