Ich behalte mehrere Texte in einer App_GlobalResources.resx
-Datei.
Die Texte müssen mehrzeilig sein und ich muss Zeilenvorschub enthalten. Wenn ich den Inhalt jedoch lese, sind alle Zeilenvorschübe verschwunden (\r\n
wird gedruckt, nicht als CRLF 10 13
-Steuerzeichen).
Ich weiß, dass ich dies umgehen könnte, indem ich \r\n
(oder irgendetwas anderes) wieder in CRLF umsetzte, als ich den Inhalt las. Ich wunderte mich jedoch, warum diese eindeutig textbezogenen Resx-Dateien Steuerzeichen ignorieren - und CRLF ist eine Art wichtig - und wenn jemand weiß, ob es eine Einstellung gibt oder etwas, das dazu führt, dass dies auf natürliche Weise funktioniert.
Ich habe VB.NET Express Edition verwendet, um dies zu testen.
Setzen Sie im Ressourcen-Editor (in dem Sie den Namen der Ressource und den Zeichenfolgeninhalt angeben können) die Zeichenfolgeninhalte getrennt durch Shift+Enter.
Nehmen wir an, Sie möchten eingeben
hello
world
Geben Sie "Hallo" gefolgt von ein Shift+Enter und "Welt".
Wenn Sie sich die Datei Resources.Resx (eine XML-Datei) ansehen, können Sie feststellen, dass sie einen Knoten mit dem Attribut xml:space="preserve"
erstellt.
2. Option
Sie können die Datei Resources.resx auch manuell bearbeiten und den Inhalt im Abschnitt CDATA ändern.
Angenommen, Sie haben die Zeichenfolge "example". Suchen Sie danach in Resources.resx und ändern Sie den Inhalt so, dass der CDATA-Abschnitt darin enthalten ist, anstatt einen einfachen Wert zu haben.
z.B.
<data name="example">
<![CDATA[
hello
world
1
2 3
4
]]> </data>
Benutzen Shift+Enter um eine neue Zeile einzufügen.
Wenn Sie den Text tatsächlich in die resx-Datei eingeben, würden Sie verwenden
Shift+Enter
wie in anderen Antworten vermerkt.
Wenn Sie Text in resx einfügen, fügt Visual Studio den Text in demselben Format ein, in dem er bereits vorhanden ist (einschließlich Zeilenumbrüchen/mehrzeilig).
(Suchen Sie die Resx-Datei mit Suchen und Ersetzen. Wenn Sie im Fenster "Suchergebnisse" auf die Datei klicken, öffnet VS die Resx-Datei in XML.)
Hier können Sie Text hinzufügen, wie Sie möchten (in Wertetags) und die Formatierung wird beibehalten.
Nun, was in meiner Situation funktionierte, war ein <br>
-Tag wie dieses:
A text with a line break <br> and this goes in the second line.
Es gibt einen Beitrag mit weiteren Informationen hier: Zeilenumbruch in eine Resx-Ressourcendatei einfügen
Wenn Sie Razor View Engine mit ASP.NET MVC verwenden, müssen Sie Folgendes verwenden:
@Html.Raw(ResourceFile.ResourceString)
damit es den <br>
als HTML druckt.
Sie können die *.resx
-Datei mit einem Texteditor bearbeiten, um Zeilenumbrüche hinzuzufügen.
Sie können dies sogar in Visual Studio tun:
Open with ...
XML (Text) Editor with Encoding
auswählenOK
.OK
, um die Codierung auszuwählen (automatische Erkennung).<value>
-Tag. Für Zeilenumbrüche einfach Enter
drücken. Hinweis: Entfernen Sie die führenden Leerzeichen nach dem Zeilenumbruch. Ansonsten werden sie auch eingefügt.Getestet mit Visual Studio 2017.
Beispiel:
<data name="MY_TEXT" xml:space="preserve">
<value>Line 1
Line 2
Line 3</value>
</data>