[c#] ASP.NET - How to write some html in the page? With Response.Write?

I need that some html in the area in the asp.net page that i am coding, is changed according to a string variable. I was thinking about creating a label, and then change the text on it.

But the string variable contains something like:

<h2><p>Notify:</p> alert</h2>

So, I don't feel that give this to a label text is a good idea

How i can do? Using response.write? If I use response.write, my added code will be at the beginning of the html source, how i can tell him to add it in a specific ?

Thank you

This question is related to c# asp.net

The answer is


If you really don't want to use any server controls, you should put the Response.Write in the place you want the string to be written:

<body>
<% Response.Write(stringVariable); %>
</body>

A shorthand for this syntax is:

<body>
<%= stringVariable %>
</body>

You can go with the literal control of ASP.net or you can use panels or the purpose.


You should really use the Literal ASP.NET control for that.


You can also use pageMethods in asp.net. So that you can call javascript functions from asp.net functions. E.g.

_x000D_
_x000D_
 [WebMethod]_x000D_
    public static string showTxtbox(string name)_x000D_
    {_x000D_
         return showResult(name);_x000D_
    }_x000D_
      _x000D_
    public static string showResult(string name)_x000D_
    {_x000D_
        Database databaseObj = new Database();_x000D_
        DataTable dtObj = databaseObj.getMatches(name);_x000D_
_x000D_
        string result = "<table  border='1' cellspacing='2' cellpadding='2' >" +_x000D_
                                            "<tr>" +_x000D_
                                                "<td><b>Name</b></td>" +_x000D_
                                                "<td><b>Company Name</b></td>" +_x000D_
                                                "<td><b>Phone</b></td>"+_x000D_
                                             "</tr>";_x000D_
_x000D_
        for (int i = 0; i < dtObj.Rows.Count; i++)_x000D_
        {_x000D_
            result += "<tr> <td><a href=\"javascript:link('" + dtObj.Rows[i][0].ToString().Trim() + "','" +_x000D_
             dtObj.Rows[i][1].ToString().Trim() +"','"+dtObj.Rows[i][2]+ "');\">" + Convert.ToString(dtObj.Rows[i]["name"]) + "</td>" +_x000D_
                "<td>" + Convert.ToString(dtObj.Rows[i]["customerCompany"]) + "</td>" +_x000D_
                "<td>"+Convert.ToString(dtObj.Rows[i]["Phone"])+"</td>"+_x000D_
             "</tr>";_x000D_
        }_x000D_
_x000D_
        result += "</table>";_x000D_
        return result;_x000D_
    }
_x000D_
_x000D_
_x000D_

Here above code is written in .aspx.cs page. Database is another class. In showResult() function I've called javascript's link() function. Result is displayed in the form of table.


ASPX file:

<h2><p>Notify:</p> <asp:Literal runat="server" ID="ltNotify" /></h2>

ASPX.CS file:

ltNotify.Text = "Alert!";

Use a literal control and write your html like this:

literal1.text = "<h2><p>Notify:</p> alert</h2>";

If you want something lighter than a Label or other ASP.NET-specific server control you can just use a standard HTML DIV or SPAN and with runat="server", e.g.:

Markup:

<span runat="server" id="FooSpan"></span>

Code:

FooSpan.Text = "Foo";