C# 如何在标记上使用服务器端变量
我想在标记上使用会话变量的值。这是写在UserContorl.ascx上的代码,NavigateUrl上的文件我想发送存储在会话变量中的用户名。出于某种原因,我不想在PageLoad函数上设置NavigateUrl值 注意,代码给出了错误:服务器标记的格式不正确C# 如何在标记上使用服务器端变量,c#,html,asp.net,.net,user-controls,C#,Html,Asp.net,.net,User Controls,我想在标记上使用会话变量的值。这是写在UserContorl.ascx上的代码,NavigateUrl上的文件我想发送存储在会话变量中的用户名。出于某种原因,我不想在PageLoad函数上设置NavigateUrl值 注意,代码给出了错误:服务器标记的格式不正确 CssClass=“pnlMenuItems” 前景色=“#666666”>注销 那么: <asp:Panel ID="pnlMenuItems" runat="server" HorizontalAlign="Left">
CssClass=“pnlMenuItems”
前景色=“#666666”>注销
那么:
<asp:Panel ID="pnlMenuItems" runat="server" HorizontalAlign="Left">
<asp:HyperLink ID="LinkLogout" runat="server"
NavigateUrl="<%# "~/logout/" + HttpContext.Current.Session["UserName"].ToString() %>"
CssClass="pnlMenuItems"
ForeColor="#666666">Logout</asp:HyperLink>
</asp:Panel>
注销
您可以在服务器标记中绑定数据。e、 g
<asp:HyperLink ID="LinkLogout" runat="server"
NavigateUrl="<%# LogoutUrl %>"
CssClass="pnlMenuItems"
ForeColor="#666666">Logout</asp:HyperLink>
使用此方法在调用
DataBind()
期间设置NavigateUrl。在我的示例中,该值将在页面加载期间设置,但您不必专门这样做。如果需要在页面生命周期中的不同时间执行此操作,可以尝试在不同事件期间调用DataBind()
。错误:服务器标记不能包含构造。它不起作用
<asp:HyperLink ID="LinkLogout" runat="server"
NavigateUrl="<%# LogoutUrl %>"
CssClass="pnlMenuItems"
ForeColor="#666666">Logout</asp:HyperLink>
protected string LogoutUrl {
get {
return "~/logout/" + HttpContext.Current.Session["UserName"].ToString();
}
}
protected void Page_Load(object sender, EventArgs e) {
if(!IsPostBack) { DataBind(); }
}