it-swarm.com.de

Wagenrücklauf/Zeilenvorschub in .Net-Ressourcendatei (App_GlobalResources)

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.

85
Alex

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>
150
shahkalpesh

Benutzen Shift+Enter um eine neue Zeile einzufügen.

31
KingP

Bei Verwendung der resx Designer-Oberfläche

  • 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).

Beim Öffnen der resx-Datei im XML-Format

(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.

16
Danield

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.

11

Sie können die *.resx-Datei mit einem Texteditor bearbeiten, um Zeilenumbrüche hinzuzufügen. 

Sie können dies sogar in Visual Studio tun:

  • Klicken Sie mit der rechten Maustaste auf die Ressourcendatei
  • Klicken Sie auf Open with ...
  • XML (Text) Editor with Encoding auswählen
  • Klicken Sie auf OK.
  • Klicken Sie erneut auf OK, um die Codierung auszuwählen (automatische Erkennung).
  • Suchen Sie nach dem Namen (Schlüssel) Ihres Textes (z. B. "MY_TEXT").
  • Bearbeiten Sie den Text im <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>
0
Beauty