2011-09-15 27 views
6

以下のようにaspxページのサーバーコントロールからコードビハインドでMyMethodを呼び出す必要があります。ASP.NET 4の '(一重引用符)と "(二重引用符)の相違点

MyPage.aspx

<asp:Label ID="MyLabel" runat="server" Text='<%# MyMethod(Eval("MyColumn")) %>'> 

MyPage.aspx.cs

protected void MyMethod(object obj) { ... } 

私はaspxページに代わり"'を使用する場合、それは、サーバーのタグが十分ではない私にコンパイルエラーを与えます形成された。を以下に示す。

<asp:Label ID="MyLabel" runat="server" Text='<%# MyMethod(Eval("MyColumn")) %>'> // This line work 
<asp:Label ID="MyLabel" runat="server" Text="<%# MyMethod(Eval("MyColumn")) %>"> // This line error 

なぜ私はシングルクォートを使用する必要があるか知りたいのですが、それはルールですか?私の状況で二重引用符を使用するにはどうすればいいですか?

答えて

6

なぜ私はシングルクォートを使用する必要があるか知りたいのですが、それはルールですか?私はどのようにして 私の状況で二重引用符を使用できますか?

二重引用符で囲まれた一重引用符を使用すると、文字列がどこで終了するのかを明確にすることができます。 Text = "MyMethod(" 123 ")"を使用することはできません。なぜなら、TextはMで始まり、(または3または最後の)最後であるからです。単一引用符と二重引用符を使用することにより、コンパイラは文字列の終わりを知ることができます。

Text="MyMethod('123')" 

Text='MyMethod("123")' 

あなたの例では、結合についてですが、非結合状況のため、二重引用符を使用しているときに二重引用符を持っているしたいとしましょう。 HTMLエンティティを使用することができます"

Text="This is my string with &quot; inside &quot;" //This will produce : This is my string with "inside" 
関連する問題