ASP.NET 4中“(单引号)和”(双引号)之间的区别

时间:2011-09-15 15:49:12

标签: asp.net

我想在下面的aspx页面中从服务器控件调用代码隐藏中的MyMethod。

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

我想知道为什么我需要使用单引号,这是规则吗?在我的情况下如何使用双引号?

1 个答案:

答案 0 :(得分:6)

  

我想知道为什么我需要使用单引号,这是规则吗?我怎么能够   在我的情况下使用双引号?

在双引号上使用单引号只是为了清楚字符串结束的位置。你不能使用Text =“MyMethod(”123“)”因为文本以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"