2009-09-04 31 views
15

簡単な質問ですが、私は一重引用符と二重引用符の両方をテキストプロパティの文字列に入れる方法を見つけることができないようですasp.netのリテラルASP.NET:リテラルのテキストプロパティ内の一重引用符と二重引用符

<asp:Literal runat="server" id="Literal1" Text="This is my "text", isn't it pretty" /> 

たとえば、上記のコードスニペット。文字列は 'text'の前後の最初の二重引用符で閉じます。私はそれらを単一引用符で置き換えることができます(またはすべての二重引用符を使用し、一重引用符で文字列をラップすることができます)が、私は両方を使用する方法がわかりません。引用符をエスケープすることは機能していないようです。

コードビハインドの文字列を設定することはもちろん可能ですが、二重引用符をエスケープできますが、コードビハインドを乱雑にするのではなく、常に静的テキストをaspxに保存することをお勧めしました。

答えて

27

のために働く必要がありますが、引用符のHTML enitityを試すことができます

<asp:Literal id="literal1" runat="server">This is my "text", isn't it pretty</asp:Literal> 

を私はそれらのインラインを使う方法を知らない。代わりに、コードを使用して値を初期化します。

<asp:Literal runat="server" id="Literal1" Text="" /> 

... 

Literal1.Text = "This is my \"text\", isn't it pretty?"; 

また、他の場所で示唆されているようにHTMLエンコーディングを使用することもできます。

<asp:Literal runat="server" id="Literal1" Text="Isn't &quot;it&quot; pretty?" /> 
+0

ええ、ASP.NET Webフォームファイルは基本的にXMLファイルであり、通常のXMLルールがそれらに適用されます。この場合、標準のXMLエンティティを使用して引用符をエスケープします。関連するメモ:アンパサンド( '&')をエスケープするには、 '&'を使用します。 – Blixt

+0

* facepalm *私はばかです。私はこれらのすべての時間を使用します。私は今朝私の愚かなフレークを持っていたにちがいありません。 – Jeff

+0

これは実際には、IPの推奨テクニックを使用して 'Generate Local Resource'(テキストをフォーマットする)を実行すると、ページ上に表示されるので、MSが好むと思われるものです。 – Jeff

6

あなたが使用することができます。私は、エスケープ文字を示唆している&quot;

<asp:Literal runat="server" id="Literal1" Text="This is my &quot;text&quot;, isn't it pretty" /> 
+0

このように設定されたテキストは、グローバリゼーション用の組み込みツールで取り上げられますか? – Jeff

+1

IDを紛失していますが、私はこれが最高です。 +1 – tvanfosson

+0

申し訳ありません。コードの背後にあるコードからアクセスする必要がないことが分かっている場合は、IDをオフにしておくと、生成されたコードに膨大なIDが割り当てられることはありません。 – Paul

1

、しかし:これはあなた

+0

これは私の欠点ですが、私は静的なテキストをコードサイドではなく前面に保つことを好みます。 – Jeff

+0

真剣にdownvoteに? – Mayo

+0

+1中立の位置に戻ってきました:P –

4

あなたは、このような単一引用符の内側にダブルクォートを使用することができます。

<asp:Literal runat="server" id="Literal1" Text='This is my "text", isnt it pretty' /> 

しかし、あなたがテキストでそれらの両方を使用したい場合は、これを行うための最善の方法は、

0
背後にあるコードであります

私は... String.Formatのをお勧めしたいと思います

...

Literal1.Text = string.format( "{0}"、 "これは私のテキストです。

+2

いくつかの問題:1.この質問は2歳で、いくつかの回答(受け入れられた回答を含む)がありますが、これまでの質問に答えるのは悪くありません。 2.これはascxページではなく、コードビハインドで行う必要がありますが、これは私の質問で取り組む可能性があります。 3.あなたのフォーマットは悪いです。 4.閉じ括弧を外した。 – Jeff

関連する問題