Проблема присваивания декларативных значений в asp: hyperlink. Ошибка: это не скриптлет. будет выводиться как обычный текст
Я пытаюсь сделать это:
<asp:HyperLink NavigateUrl='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>' runat="server" Text='<%= GetProfileImage(WebContext.CurrentUser.AccountId) %>'></asp:HyperLink>
Но я получаю ошибку:
это не скриптлет. будет выводиться как простой текст.
когда я нажимаю над своими декларативными утверждениями.
Любые идеи? Спасибо.
Ответы
Ответ 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>