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

Ano*_*ous 7 asp.net

我想在aspx页面中的服务器控件的代码隐藏中调用MyMethod,如下所示.

MyPage.aspx

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

MyPage.aspx.cs

protected void MyMethod(object obj) { ... }
Run Code Online (Sandbox Code Playgroud)

如果我使用",而不是'在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
Run Code Online (Sandbox Code Playgroud)

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

Pat*_*ins 6

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

在双引号上使用单引号只是为了清楚字符串结束的位置.你不能使用Text ="MyMethod("123")"因为文本以M开头并且可能以(或3或最后一个)结束.通过使用单引号和双引号,编译器知道字符串何时结束.

Text="MyMethod('123')"

Text='MyMethod("123")'
Run Code Online (Sandbox Code Playgroud)

您的示例是关于绑定,但是假设您希望在使用双引号进行非绑定情况时使用双引号.你可以使用HTML实体"

Text="This is my string with  &quot; inside &quot;" //This will produce : This is my string with "inside"
Run Code Online (Sandbox Code Playgroud)