Проблема, присвоение декларативных значений в ASP: гиперссылка. Ошибка: это не скриплет. будет выводиться как простой текст
-
27-09-2019 - |
Вопрос
Я пытаюсь сделать это:
<asp:HyperLink NavigateUrl='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>' runat="server" Text='<%= GetProfileImage(WebContext.CurrentUser.AccountId) %>'></asp:HyperLink>
Но получаю ошибку:
Это не скриплет. будет выводиться как простой текст.
Когда я мышу на мои декларативные заявления.
Есть идеи? Спасибо.
Решение
Вы можете использовать синтаксис привязки данных <%# %>
. Отказ Просто будьте уверены, что ваша гиперссылка либо в контроле по пангузанию, таким как шаблон элемента списка, или что вы явно вызовете DataBind()
на контроле от кода-позади.
Другие советы
Вы не можете использовать <%= ... %>
Литералы для установки свойств серверных элементов управления.
Вместо этого вы можете использовать обычную (сторона клиента) <a>
Теги, как это:
<a href="<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>"><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>
Если GetProfileImage
Не возвращает теги HTML, обязательно избежать его.
Вы все еще можете заполнитьu003Casp:HyperLink> Если вы предоставляете Я БЫ а также Runat = "Сервер" характеристики. Затем вы можете установить любое свойство гиперссылки из кода.
Код ASP:
<asp:HyperLink ID="myLink" runat="server"/>
Код-позади:
public void Page_Init()
{
myLink.NavigateURL = WebContext.RootUrl + WebContext.CurrentUser.UserName;
myLink.Text = GetProfileImage(WebContext.CurrentUser.AccountId);
}
<a href='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>'><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>