2011-09-15 18 views
6

Chcę wywołać MyMethod z opóźnieniem kodu z kontroli serwera na stronie aspx, jak poniżej.Różnica między "(pojedynczy cytat) i" (podwójny cudzysłów) w ASP.NET 4

MyPage.aspx

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

MyPage.aspx.cs

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

Jeśli użyję " zamiast ' w stronę aspx wtedy to daje mi błąd kompilacji Znacznik serwer nie jest dobrze powstały. jak poniżej.

<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 

Chcę wiedzieć, dlaczego muszę używać apostrofu, czy jest to reguła? Jak mogę użyć podwójnego cytatu w mojej sytuacji?

Odpowiedz

6

Chcę wiedzieć, dlaczego potrzebuję użyć pojedynczego cytatu, czy to jest reguła? Jak mogę użyć podwójnego cudzysłowu w mojej sytuacji?

Użycie pojedynczego cudzysłowu zamiast podwójnego cudzysłowu ma na celu wyjaśnienie, gdzie kończy się ciąg. Nie możesz użyć Text = "MyMethod (" 123 ")", ponieważ tekst zaczyna się od M i może kończyć się na (lub 3 lub na końcu). Używając pojedynczego i podwójnego cudzysłowu, kompilator wie, kiedy kończy się ciąg.

Text="MyMethod('123')" 

Text='MyMethod("123")' 

Twój przykład jest o wiążące, ale powiedzmy, że chcesz mieć podwójny cudzysłów podczas korzystania podwójny cudzysłów dla sytuacji niewiążący. Można użyć jednostki HTML "

Text="This is my string with &quot; inside &quot;" //This will produce : This is my string with "inside" 
Powiązane problemy