web-dev-qa-db-ja.com

.Netリソースファイル(App_GlobalResources)のキャリッジリターン/ラインフィード

App_GlobalResources.resxファイルにいくつかのテキストを保持しています。

テキストは複数行である必要があり、改行を含める必要があります。ただし、コンテンツを読むと、すべての改行がなくなります(\r\n制御文字ではなく、CRLF 10 13が出力されます)。

内容を読んだときに\r\n(またはそれ以外の何か)をCRLFに再置換することでこれを回避できることを知っていますが、これらの明確にテキストをターゲットとするresxファイルが制御文字を無視する理由を疑問に思いました-そしてCRLFは一種の重要です-そして、これが自然に機能する設定や何かがあるかどうかを誰かが知っているなら。

88
Alex

VB.NET Express Editionを使用してこれをテストしました。

リソースエディター(リソースの名前と文字列コンテンツを指定できます)で、文字列コンテンツを Shift+Enter

入力したいとしましょう

hello  
world

「hello」と入力し、続けて Shift+Enter そして「世界」。

Resources.Resxファイル(xmlファイル)を見ると、xml:space="preserve"属性を持つノードが作成されていることがわかります。

2番目のオプション

また、Resources.resxを手動で編集し、CDATAセクションの下にあるようにコンテンツを変更できます。

「example」という名前の文字列があると仮定します。 Resources.resxで検索し、単純な値を持たないようにCDATAセクションを含むようにコンテンツを変更します。

例えば.

<data name="example">
<![CDATA[
hello
world
1
2   3
4
]]>  </data>
151
shahkalpesh

つかいます Shift+Enter 新しい行を挿入します。

32
KingP

Resxデザイナーインターフェイスを使用する場合

  • 実際にresxファイルにテキストを入力している場合は、次を使用します

    Shift+Enter

    他の回答で述べたように。

  • Resxにテキストを貼り付ける場合-Visual Studioは、テキストを既存と同じ形式(改行/複数行を含む)で貼り付けます。

XML形式のresxファイルを開くとき

(検索と置換を使用してresxファイルを見つけます。「検索結果」パネルからファイルをクリックすると、VSはresxファイルをXMLで開きます)

ここで、(値タグで)好きなようにテキストを追加でき、フォーマットは保持されます。

17
Danield

私の状況でうまくいったのは、次のような<br>タグを使用することでした。

A text with a line break <br> and this goes in the second line.

詳細情報の投稿があります: resxリソースファイルに改行を入れる

RazorビューエンジンをASP.NET MVCで使用している場合は、次を使用する必要があります。

@Html.Raw(ResourceFile.ResourceString)

<br>をHTMLとして出力するようにします。

11

_*.resx_ファイルをテキストエディターで編集して、改行を追加することができます。

Visual Studio内でも実行できます。

  • リソースファイルを右クリックします
  • クリックして_Open with ..._
  • XML (Text) Editor with Encodingを選択します
  • OKをクリックします
  • エンコードの選択(自動検出)のためにOKをもう一度クリックします
  • テキストの名前(キー)を検索します(例:「MY_TEXT」)
  • _<value>_タグ内のテキストを編集します。改行の場合は、Enterを押すだけです。注:改行の後に先行スペースを削除します。そうでなければ、それらも挿入されます。

Visual Studio 2017でテスト済み。

例:

_  <data name="MY_TEXT" xml:space="preserve">
    <value>Line 1
Line 2
Line 3</value>
  </data>
_
0
Beauty