2012-10-18 3 views
10

Ich bin neu in ASP.NET C# und ich habe Probleme mit einigen Dingen.Schreiben von HTML-Code in Variable in ASP.NET C# und Razor

In PHP kann ich speichern HTML-Code innerhalb einer Variablen, zum Beispiel:

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

Ich habe versucht, dies in ASP.NET und Razor

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

Aber ASP ändert "<" und " > "bis &gt; und &lt; .. Sie kennen eine Lösung dafür?

Ich habe eine andere Frage, kann ich Variable in Anführungszeichen wie PHP einfügen?

echo "<ul>{$list}</ul>"; 

Antwort

24

Der HTML Razor Motor codiert Strings standardmäßig, wie Sie bemerkt haben. Um dieses Verhalten zu vermeiden, verwenden Sie nur Html.Raw():

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

bearbeiten

Um eine Variable in einem String zu machen, nehme ich an konnte man string.Format verwenden:

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

Obwohl das übertrieben scheint (zumindest für dieses Beispiel) wenn Sie einfach schreiben können:

<div>hello @someVariable</div> 
+0

Danke dude, es funktioniert. Und die andere Frage? Ich kann eine Variable in Anführungszeichen wie PHP schreiben? Ich wähle die richtige Antwort in 9 Minuten, danke nochmal. – Carasuman

+0

@Carasuman kein Problem, froh, dass es geholfen hat - siehe mein Update oben, wenn das hilft. – McGarnagle

+0

Ich sah deine Ausgabe, danke für Hilfe! – Carasuman