首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在标记上使用服务器端变量

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

Stack Overflow用户
提问于 2013-08-02 22:43:15
回答 2查看 2.2K关注 0票数 0

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

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

代码语言:javascript
运行
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-02 23:02:15

可以在服务器标记中绑定数据。例如:

代码语言:javascript
运行
复制
<asp:HyperLink ID="LinkLogout" runat="server"
    NavigateUrl="<%# LogoutUrl %>"
    CssClass="pnlMenuItems"
    ForeColor="#666666">Logout</asp:HyperLink>

然后在后面的代码中:

代码语言:javascript
运行
复制
protected string LogoutUrl { 
    get { 
        return "~/logout/" + HttpContext.Current.Session["UserName"].ToString(); 
    }
}

protected void Page_Load(object sender, EventArgs e) {
    if(!IsPostBack) { DataBind(); }
}

NavigateUrl在调用DataBind()时使用此方法进行设置。在我的示例中,这个值将在页面加载期间被设置,但是您不必专门这样做。如果需要在页面生命周期中的不同时间发生这种情况,可以尝试在不同的事件期间调用DataBind()

票数 1
EN

Stack Overflow用户

发布于 2013-08-02 22:45:45

不如:

代码语言:javascript
运行
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18027180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档