Когда встроенные параметры для UserControls должны иметь одинарные кавычки, чтобы они были правильно сформированы? - PullRequest
1 голос
/ 31 августа 2011

Я просто использовал то, что он хочет, годами и никогда не задавал вопросов, однако, может кто-нибудь сказать мне, почему я должен использовать одинарные кавычки против двойных кавычек, чтобы быть правильно сформированным тегом?

Сообщение об ошибке: «Тег сервера сформирован неправильно.»

Каковы правила для применения одинарных кавычек (т. Е. Внутри шаблона ... и т. Д.)?

* * 1010

против

 //well formed
 <uc1:blaControl ID="bla" runat="server" Prop1='<%# Eval("Data") %>' />
 <asp:Literal ID="ControlTitle" runat="server" Text="<%# Title %>" />
 <asp:Literal ID="ControlTitle" runat="server" Text='<%# Title %>' />

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Ну разметка в первом не действительна SGML." внутри атрибута путают с окружающими кавычками, поэтому неясно, где атрибут заканчивается и заканчивается.Чтобы обойти это, вам нужно оставить их разными.

// valid and will compile
<uc1:blaControl ID="bla" runat="server" Prop1='<%# Eval("Data") %>' />

Причина, по которой вы не можете альтернативно использовать следующий синтаксис, который будет действительным SGML, заключается в том, что C # во внешних кавычках становится недействительным и выигрывает 't compile (одинарные кавычки обозначают символ).

 // valid but won't compile
 <uc1:blaControl ID="bla" runat="server" Prop1="<%# Eval('Data') %>" />
0 голосов
/ 31 августа 2011

Xml позволяет вам использовать одинарные или двойные кавычки для атрибутов. Использование одинарных кавычек в объявлении атрибута означает, что тогда вы можете использовать двойные кавычки внутри значения атрибута, когда вы делаете, например: Eval («что-то»)

...