2011-09-15 791 views
6

我想在aspx页面中的服务器控件的代码隐藏中调用MyMethod,如下所示。ASP.NET 4中'(单引号)和“(双引号)之间的区别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“)”“,因为文本以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" 
相关问题