проблема присвоения декларативных значений в asp: гиперссылка. ошибка: это не скриптлет. будет выводить как обычный текст - PullRequest
19 голосов
/ 09 августа 2010

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

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

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

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

, когда я наведу курсор мыши на свои декларативные заявления.

Есть идеи?Спасибо.

Ответы [ 4 ]

23 голосов
/ 09 августа 2010

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

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

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

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

18 голосов
/ 09 августа 2010

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

9 голосов
/ 25 ноября 2010

Вы все еще можете заполнить , если указали свойства ID и runat = "server" . Затем вы можете установить любое свойство HyperLink из-за кода.

Код ASP:

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

Код-за:

public void Page_Init()
{
    myLink.NavigateURL = WebContext.RootUrl + WebContext.CurrentUser.UserName;
    myLink.Text = GetProfileImage(WebContext.CurrentUser.AccountId);
}
2 голосов
/ 09 августа 2010
<a href='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>'><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>
...