stevenmc
stevenmc

Reputation: 1669

ASP.NET Content page dynamic content comes out at the top of the HTML output

I'm very new to ASP.net. I have a c# content page, in which I want to inset this code half way down within the HTML:

<%
HttpResponse r = Response;
r.Write(HttpContext.Current.Request.ServerVariables["SERVER_NAME"]); 
%>

But when I view the page, this content comes out first, before even the tag.

Any ideas on how to get this code inline instead?

Thanks!

EDIT I'd just like to add a note to all who answered this question to explain what you've done. You spared your valuable time to help me, a stranger to you, solve a difficult problem at work, which allowed me to get out of the office on Friday night, just in time to catch the last bus to my home 50 miles away, and see my wife who was sick in bed. You didn't just answer my question, you made my day SO much better. THANK YOU so much!

Steven

Upvotes: 1

Views: 925

Answers (5)

Kelsey
Kelsey

Reputation: 47726

Because you are doing a Response Write, that will push out before everything else. If you want to just imbed something at a specific point you can do:

<%= HttpContext.Current.Request.ServerVariables["SERVER_NAME"])  %> 

This <%= %> will write any string to that exact location in the HTML.

You could also use a Literal control and assign its Text property in your codebehind or use a Label if you require formatting.

Upvotes: 3

Peter Karlsson
Peter Karlsson

Reputation: 1180

Or if you just want the text, with no html markup. Use a literal.

In aspx file

<asp:Literal ID="MyLiteral" runat="server" />

in code-behind

MyLiteral.Text = HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString();

Upvotes: 0

adt
adt

Reputation: 4360

when you use Response.Write("..."); its shows up before page header , instead of using Response.Write you can put a label on the form wherever you want to see the message and set label's Text property.

Upvotes: 0

Leon
Leon

Reputation: 3401

Define a DIV on the page like this, where you want the outputted string to be displayed:

<div id="myDIV" runat="server" />

Then, instead of r.Write() you can simply set the inner text of the DIV to be what you want:

myDIV.innerText = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];

Upvotes: 0

Nikhil
Nikhil

Reputation: 3384

You can put a label on the page where you want the text to appear and then set the label's text instead of doing like this. Simply put an asp label on the page and frmo your code behind do

myLabel.Text = HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString();

where myLabel is the ID of your label in your HTML Markup.

Upvotes: 0

Related Questions