2011-09-15 23 views
6

Voglio chiamare MyMethod nel code-behind dal controllo server nella pagina aspx come di seguito.Differenza tra '(virgoletta singola) e "(virgoletta doppia) in ASP.NET 4

MyPage.aspx

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

MyPage.aspx.cs

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

Se uso " invece ' nella pagina aspx allora mi darà un errore di compilazione Il tag server non è ben formata. come di seguito.

<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 

Voglio sapere perché devo usare la citazione singola, è una regola? Come posso usare il doppio preventivo nella mia situazione?

risposta

6

Voglio sapere perché ho bisogno di usare la citazione singola, è una regola? Come posso usare il doppio preventivo nella mia situazione?

L'uso di Virgolette su Virgolette è solo per chiarire dove finisce la stringa. Non è possibile utilizzare Text = "MyMethod (" 123 ")" perché il testo inizia con M e può terminare con (o il 3 o l'ultimo). Usando virgolette singole e doppie il compilatore sa quando finisce la stringa.

Text="MyMethod('123')" 

Text='MyMethod("123")' 

Il vostro esempio è di circa vincolante, ma diciamo che si desidera avere un doppio apice mentre si utilizza un doppio apice per una situazione non vincolante. Potresti utilizzare l'entità HTML "

Text="This is my string with &quot; inside &quot;" //This will produce : This is my string with "inside" 
Problemi correlati