加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 为什么<%=%>在一种情况下工作,但在另一种情

发布时间:2020-12-16 00:30:27 所属栏目:asp.Net 来源:网络整理
导读:这是因为昨天晚上给我一个坏的答案。对于为什么一种方法工作而不是另一种方法的好奇心是扰乱我,我希望比我更聪明的人可以给我正确的解释(或指向我的文档)为什么以下行为是这样的。 给出以下代码隐藏: protected string GetMyText(string input){ return "H
这是因为昨天晚上给我一个坏的答案。对于为什么一种方法工作而不是另一种方法的好奇心是扰乱我,我希望比我更聪明的人可以给我正确的解释(或指向我的文档)为什么以下行为是这样的。

给出以下代码隐藏:

protected string GetMyText(string input)
{
  return "Hello " + HttpUtility.HtmlEncode(input);
}

为什么这个工作

<asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>

但这不是

<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />

编辑 – 添加

有可能让我原来的愚蠢的答案下降了更多次,这里是原始问题的链接,因为我现在得到的一些答案已经在这个问题被覆盖。

Why can’t I set the asp:Label Text property by calling a method in the aspx file?

解决方法

使用<%=%>等于在您的页面中放置Response.Write(“”)。这样做时
<asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>

ASP.NET处理器评估控件,然后在渲染时输出控件的内容&调用Response.Write它看到的位置<%=。 在这个例子中:

<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />

您不能在Text属性上使用Response.Write(“”),因为它不返回字符串。它将其输出写入响应缓冲区并返回void。

如果要在ASP.NET标记中使用服务器标签语法,则需要使用<%#%&gt ;.标记数据的这种组合绑定了标签中的值。为了使这个工作,你需要在页面的Load()方法中调用DataBind()来使它工作。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读