Я пытаюсь заменить некоторый текст на странице ASPX литеральным элементом управления с помощью макроса Visual Studio (2010), но похоже, что разметка элемента управления изменяется после замены.
У меня есть страница ASPX со следующим:
<span>Foo</span>
который я пытаюсь заменить на:
<span><asp:Literal Text="<%$ Resources:Foo %>" runat="server" /></span>
Это делается путем выделения текста «Foo» и последующего запуска макроса для замены текста. Однако при выполнении макроса Visual Studio не вставляет текст в точности так, как он был введен.
Мой код макроса выглядит так:
Dim Selection As TextSelection = DTE.ActiveDocument.Selection
Selection.Text = "<asp:Literal Text=""<%$ Resources:Foo %>"" runat=""Server""/>"
Однако, когда макрос выполняется, он вставляет это:
<asp:Literal Text=""<%$ Resources:Foo %>" runat="Server" /> %>"
Обратите внимание на первый набор двойных кавычек (хотя остальные верны) и дополнительные %>"
, добавленные в конце. Это, кажется, происходит, если текст замены содержит любые кавычки. Например, если я просто попытаюсь заменить выделенный текст на <asp:Literal runat=Server"/>
, он будет работать правильно.
Кто-нибудь знает, почему это происходит, и как я могу обойти это?
Спасибо.