在aspx文件中设置带有内联代码的文本
本文关键字:代码 文本 aspx 文件 设置 | 更新日期: 2023-09-27 18:16:07
. NET项目,我有一个文字。为了设置text属性,我使用了以下代码:
<asp:Literal ID="ltUserName" runat="server" Text="<%= session.UserName %>" />
但是文字显示的不是session.UserName
的值,而是<%= session.UserName %>
。我觉得解决办法很简单,但我做不到。如何用内联代码设置文本?
语法=<%#…%>是数据绑定语法,用于在调用DataBind方法时将值绑定到控制属性。
你需要调用DataBind -任一页。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();
}
}
如果您想在HTML页面中打印会话值,只需使用<% =Session["UserName"].ToString()%> as "<% %>将作为服务器标记,并且您不能将其置于文字控件
中我的意思是不需要文字控制,可以使用前面提到的编码来代替文字。
你试过了吗:
Text='<%= session.UserName %>'
单引号可以解决
编辑:基于此线程:stackoverflow.com/a/370263/360171
我只需替换
<asp:Literal ID="ltUserName" runat="server" Text="<%= session.UserName %>" />
<%= session.UserName %>
您不能将控件(<asp:Literal />
)与代码块(<%= .. %>
)混合。
您可以从代码中访问Text属性:
ltUserName.Text = session.UserName;
Renatos的答案是正确的,当你要计算属性中的表达式时,你应该用单引号。
同样可以用ItemTemplate
说,在那里你有控制数据绑定,在那里你会使用Text='<%=Eval("MyDataProperty")%>'
。