Ich habe eine sehr einfache asp:textbox
mit dem Attribut multiline
aktiviert. Ich akzeptiere dann nur Text ohne Markup aus dem Textfeld. Gibt es eine übliche Methode, mit der Zeilenumbrüche und -rückgaben in <p>
und <br/>
-Tags konvertiert werden können?
Ich suche nichts, was die Erde erschüttert, aber gleichzeitig möchte ich nicht nur etwas tun wie:
%Vor% Der obige Code funktioniert nicht richtig, wie beim Erzeugen von korrektem HTML, wenn es mehr als 2 Zeilenumbrüche in einer Zeile gibt. Html wie <br/></p><p>
zu haben ist nicht gut; Die <br/>
kann entfernt werden.
Abhängig von genau dem, was Sie mit dem Inhalt machen, ist meine typische Empfehlung, NUR die <br />
-Syntax zu verwenden und nicht Absätze zu behandeln.
Ich weiß, das ist alt, aber nach einigem Suchen konnte ich nichts Besseres finden, also hier ist was ich benutze:
%Vor% Wenn Sie HttpUtility aus irgendeinem Grund nicht benutzen können, müssen Sie die HTML-Kodierung auf andere Weise machen, und es gibt viele kleine Details, um die Sie sich kümmern müssen (nicht nur <>&
).
HtmlEncode handhabt nur die Sonderzeichen für Sie, also wandle ich danach jede Kombination aus Wagenrücklauf und / oder Zeilenvorschub in ein BR-Tag und alle doppelten Leerzeichen in ein einzelnes Leerzeichen plus einen NBSP um.
Optional können Sie ein PRE-Tag für den letzten Teil verwenden:
%Vor%Ihre andere Option besteht darin, den Inhalt des Textrahmens zu übernehmen, und anstatt einen Absatz zu unterbrechen, geben Sie einfach den Text zwischen PRE-Tags ein. So:
%Vor% Wie wäre es mit einem <pre>
-Tag? Ist es nicht das, wofür es überhaupt ist?
Ich weiß, dass dies ein alter Post ist, aber ich habe kürzlich ein ähnliches Problem mit C # bei MVC4 gehabt, also dachte ich, ich würde meine Lösung teilen.
Wir hatten eine Beschreibung in einer Datenbank gespeichert. Der Text war ein direktes Kopieren / Einfügen von einer Website und wir wollten ihn in semantisches HTML umwandeln, indem wir <p>
-Tags verwenden. Hier ist eine vereinfachte Version unserer Lösung:
In unserem Fall mussten wir wegen der Razor-Syntax im ASP.NET MVC-Framework @
vor einer beliebigen Variable oder Bezeichnern als Präfix für eine Variable angeben. Allerdings habe ich dies mit einem Console.Write
gezeigt, aber Sie sollten in der Lage sein, herauszufinden, wie Sie dies in Ihrem spezifischen Projekt basierend darauf implementieren:)