C# ASP.net, speichern und schreiben von HTML-mit string-Variablen
Ich habe ein Formular, wo die Benutzer geben Sie eine url zu einem YouTube-video. Mein code parst die url und erstellt einen embed-string gespeichert ist, in meiner Datenbank. Das sieht etwas aus wie:
string rawQuery = uri.Query;
int index = rawQuery.IndexOf("?");
if (index > 0)
rawQuery = rawQuery.Substring(index).Remove(0, 1);
id = HttpUtility.ParseQueryString(rawQuery).Get("v");
string embedURL = "<iframe width=\"640\" height=\"360\" src=\"http://www.youtube.com/embed/" + id + "\" frameborder=\"0\" allowfullscreen></iframe>";
Diese Zeichenfolge wird in der Datenbank gespeichert und später abgerufen und gedruckt auf einer HTML-Seite. Jedoch, die Ausgabe endet auf der Suche wie diese, wenn ich die Seite anzeigen Quelle:
<iframe width="640" height="360" src="http://www.youtube.com/embed/AXaoi6dz59A" frameborder="0" allowfullscreen></iframe>
Wie kann ich drucken Sie diese Zeichenfolge, so dass es nicht entkommen meine Zitate und kleiner/größer-als-Symbole?
- Sie möchten unescape es
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie sollten
@Html.Raw(string)
http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
http://www.arrangeactassert.com/using-html-raw-in-asp-net-mvc-razor-views/
Wenn Sie, zum Beispiel, ViewBag zur Ausgabe der Zeichenfolge in der Ansicht verwenden
Erzählen das framework nicht Kodieren Sie die Zeichenfolge
Ist es, wenn Sie schreiben Sie die Zeichenfolge in der Seite, es wird codiert. Verwenden Sie die
<%= %>
server-tag zur Ausgabe der Zeichenfolge ohne Codierung es:Können Sie auch wickeln Sie es in ein
HtmlString
Objekt zu vermeiden, die automatische Codierung:Dann können Sie nur Ausgabe, die es als normal:
oder mit razor:
Können Sie auch die
Html.Raw
Methode, um wickeln Sie es in einHtmlString
Objekt: