Подтвердить что ты не робот

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

Я пытаюсь сделать это:

<asp:HyperLink NavigateUrl='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>' runat="server" Text='<%= GetProfileImage(WebContext.CurrentUser.AccountId) %>'></asp:HyperLink> 

Но я получаю ошибку:

это не скриптлет. будет выводиться как простой текст.

когда я нажимаю над своими декларативными утверждениями.

Любые идеи? Спасибо.

4b9b3361

Ответ 1

Синтаксис привязки данных можно использовать <%# %>. Просто убедитесь, что ваша гиперссылка находится либо в режиме управления данными, например в элементе списка ListView, либо в том, что вы явно вызываете DataBind() в элементе управления из кода.

Ответ 2

Вы не можете использовать литералы <%= ... %> для установки свойств элементов управления на стороне сервера.

Вместо этого вы можете использовать обычный (клиентский) тег <a>, например:

<a href="<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>"><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>

Если GetProfileImage не возвращает теги HTML, не забудьте его избежать.

Ответ 3

Вы все равно можете заполнить < asp: HyperLink > если вы предоставили свойства ID и runat = "server" . Затем вы можете установить любое свойство HyperLink из кода.

Код ASP:

<asp:HyperLink ID="myLink" runat="server"/>

Code-за:

public void Page_Init()
{
    myLink.NavigateURL = WebContext.RootUrl + WebContext.CurrentUser.UserName;
    myLink.Text = GetProfileImage(WebContext.CurrentUser.AccountId);
}

Ответ 4

<a href='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>'><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>