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

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

<asp:Literal ID="ltUserName" runat="server" Text="" /> 

但是,而不是session.UserName的值,文字显示 。 我觉得解决方案很简单,但我无法做到。 如何使用内联代码设置文本?

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

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

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

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

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

你试过了吗:

 Text='<%= session.UserName %>' 

单引号可以解决它

编辑:

基于这个线程:stackoverflow.com/a/370263/360171

我会简单地替换

  

通过

 <%= session.UserName %> 

您不能将控件( )与代码块( <%= .. %> )混合使用。

您可以从代码中访问Text属性:

  ltUserName.Text = session.UserName; 

Renatos的答案是正确的,当您要评估属性中的表达式时,应该使用单引号。

使用ItemTemplate也可以这么说,你可以使用对数据绑定的控件,使用Text='<%=Eval("MyDataProperty")%>'