Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Writing HTML code inside variable in ASP.NET C# and Razor

Tags:

I'm new in ASP.NET C# and I have problems with some things.

In PHP, I can store HTML code inside a variable, for example:

$list = "<li>My List</li>"; echo "<ul>{$list}</ul>"; // write <ul><li>My List</li></ul> 

I tried this in ASP.NET and Razor

string List = "<li>My List</li>"; <ul>@List</ul> 

But ASP changes "<" and ">" to &gt; and &lt;.. You know any solution for this?

I have another question, can I insert variable inside a quotes like PHP?

echo "<ul>{$list}</ul>"; 
like image 348
Carasuman Avatar asked Oct 18 '12 21:10

Carasuman


1 Answers

The Razor engine HTML encodes strings by default, as you have noticed. To avoid this behavior, just use Html.Raw():

<ul>@Html.Raw(List)</ul> 

Edit

To render a variable within a string, I suppose you could use string.Format:

@{ var someVariable = "world"; } @string.Format("<div>hello {0}</div>", someVariable) 

Although that seems like overkill (at least for this example) when you can just write:

<div>hello @someVariable</div> 
like image 55
McGarnagle Avatar answered Sep 27 '22 22:09

McGarnagle