ASP.NET 4中单引号和双引号的区别

7
我希望能在代码后端(code-behind)中从服务器控件(server control)调用MyMethod,就像下面这样:

MyPage.aspx

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

MyPage.aspx.cs

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

如果我在aspx页面中使用"而不是',那么将会给我一个编译错误,错误提示为The server tag is not well formed.如下所示。
<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个回答

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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接