在aspx文件中使用内联代码设置文字文本

sev*_*kul 4 c# asp.net

在ASP.NET项目中,我有一个文字.为了设置text属性,我使用了以下代码:

<asp:Literal ID="ltUserName" runat="server" Text="<%= session.UserName %>" />
Run Code Online (Sandbox Code Playgroud)

而不是session.UserName文字节目的价值<%= session.UserName %>.我觉得解决方案很简单,但我无法做到.如何使用内联代码设置文本?

Pri*_*y G 7

syntax = <%#...%>是数据绑定语法,用于在调用DataBind方法时将值绑定到控件属性.

您需要调用DataBind - 要么Page.DataBind绑定页面上的所有控件,要么调用this.DataBind()来绑定标签.例如,将以下内容添加到Page_Load事件处理程序:

<asp:Literal ID="ltUserName" runat="server"  Text='<%# Session["UserName"]%>'></asp:Literal>


 protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Session["UserName"] = "Sample";
        this.DataBind(); 
    }

}
Run Code Online (Sandbox Code Playgroud)


小智 5

如果你真的想在HTML页面中打印会话值,只需使用<%= Session ["UserName"].ToString()%> as"<%%>将作为服务器标签,你不能在文字控件内

我的意思是不需要Literal Control就可以使用提到的编码而不是文字.

  • @sevenkul如果UserName是一个字符串,你不需要额外的`.ToString()`. (2认同)