在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")%>'
。