Проблема, присвоение декларативных значений в ASP: гиперссылка. Ошибка: это не скриплет. будет выводиться как простой текст

StackOverflow https://stackoverflow.com/questions/3441841

  •  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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top