19

私はこれをやろうとしています:

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

しかし、エラーが発生しています:

これはスクリプトレットではありません。プレーンテキストとして出力されます。

宣言的なステートメントにマウスを合わせると。

何か案は?ありがとう。

4

4 に答える 4

23

<%= ... %>リテラルを使用してサーバー側コントロールのプロパティを設定することはできません。

<a>代わりに、次のように通常の (クライアント側の)タグを使用できます。

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

が HTML タグを返さない場合GetProfileImageは、必ずエスケープしてください。

于 2010-08-09T16:01:10.443 に答える
18

データバインディング構文を使用できます<%# %>。ハイパーリンクがListViewアイテムテンプレートなどのデータバインドされたコントロールにあるか、DataBind()コードビハインドからコントロールを明示的に呼び出すようにしてください。

于 2010-08-09T16:10:18.597 に答える
9

IDrunat="server"プロパティを指定すれば、 <asp: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);
}
于 2010-11-24T23:30:26.027 に答える
2
<a href='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>'><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>
于 2010-08-09T16:04:02.360 に答える