Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在标记上使用服务器端变量_C#_Html_Asp.net_.net_User Controls - Fatal编程技术网

C# 如何在标记上使用服务器端变量

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">

我想在标记上使用会话变量的值。这是写在UserContorl.ascx上的代码,NavigateUrl上的文件我想发送存储在会话变量中的用户名。出于某种原因,我不想在PageLoad函数上设置NavigateUrl值

注意,代码给出了错误:服务器标记的格式不正确


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(); }
}