gpt4 book ai didi

asp.net - 为什么 <%= %> 在一种情况下有效,但在另一种情况下无效

转载 作者:行者123 更新时间:2023-12-03 13:08:44 25 4
gpt4 key购买 nike

这源于我昨晚给出的错误答案。关于为什么一种方法有效而不是另一种方法的好奇心困扰着我,我希望比我更聪明的人能给我正确的解释(或指向我的文档)为什么以下行为是这样的。

给定以下代码隐藏:

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

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

如果您想在 ASP.NET 标记中使用服务器标记语法,您需要使用 <%# %> .标记数据的这种组合绑定(bind)了标记中的值。要完成这项工作,您需要调用 DataBind()在您页面的 Load()它工作的方法。

关于asp.net - 为什么 <%= %> 在一种情况下有效,但在另一种情况下无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1531586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com