Asp.net 为什么<;%=%&燃气轮机;在一种情况下有效,但在另一种情况下无效
这是因为昨晚我的回答不好。对为什么一种方法有效而另一种方法无效的好奇一直困扰着我,我希望比我聪明的人能给我正确的解释(或者让我看一下文档)为什么会出现以下行为 给出了以下代码:Asp.net 为什么<;%=%&燃气轮机;在一种情况下有效,但在另一种情况下无效,asp.net,Asp.net,这是因为昨晚我的回答不好。对为什么一种方法有效而另一种方法无效的好奇一直困扰着我,我希望比我聪明的人能给我正确的解释(或者让我看一下文档)为什么会出现以下行为 给出了以下代码: protected string GetMyText(string input) { return "Hello " + HttpUtility.HtmlEncode(input); } 为什么这样做 <asp:Label ID="Label1" runat="server"><%= GetMy
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") %>' />
使用资源的正确格式:
<asp:Label ID="Label1" runat="server" Text='<%$ Resources:Resource, MyText %' />
使用
等同于放置响应。在页面中写入(“”
)。执行此操作时:
<asp:Label ID="Label1" runat="server"><%= GetMyText("LabelText") %></asp:Label>
不能对文本属性使用Response.Write(“”)
,因为它不返回字符串。它将其输出写入响应缓冲区并返回void
如果要在ASP.NET标记中使用服务器标记语法,则需要使用
。标记数据的这种组合绑定了标记中的值。要使其工作,您需要在页面的Load()
方法中调用DataBind()
,使其工作。因为它们都是服务器端指令-第二段代码相当于:
<asp:Label ID="Label1" runat="server" Text='Response.Write(GetMyText("LabelText"))' />
如果全局资源文件中有LabelText,请在服务器控件上执行此操作:
<asp:Label ID="Label1" runat="server" Text="<%$ Resources: resourceName, LabelText %>" />
基本上是指
Write(GetMyText(“LabelText”)
在这里可以。
但是,使用此选项时:
<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />
它基本上意味着:
Label1.Text=Response.Write(GetMyText(“LabelText”)
这是一个错误的陈述。要使它在第二种情况下工作,您需要如下所示:
<asp:Label ID="Label1" runat="server" Text="<%# GetMyText("LabelText") %>" />
然后需要对Label1进行数据绑定。它有单引号和双引号吗?我知道有些语言使单引号内的所有内容都成为纯输出,而双引号内的文本首先计算…@peirix-单引号和双引号对ASP.NET语法没有任何影响。该语法遵循XML语法规则,该规则规定可以互换使用双引号和单引号,只要始终以开头相同的内容结尾。+1是的,使用response。在文本属性中写入没有任何意义。若要展开
语句。。。数据绑定后填写。这意味着除非对控件或其容器调用DataBind()
,否则不会发生任何事情。如果没有其他原因导致控件上的数据绑定,则可以在OnLoad
事件中调用Page.DataBind()
(如Dan所说),但如果控件已经进行了数据绑定,则不必这样做。这是我第一次看到该构造及其解释。有人知道一个好的来源来详细解释所有的构造,它们做什么,什么时候使用它们吗?这正是我想要的答案。解释得很好,而且完整。谢谢。下面是各种服务器标记的说明:
<asp:Label ID="Label1" runat="server" Text='<%= GetMyText("LabelText") %>' />
<asp:Label ID="Label1" runat="server" Text="<%# GetMyText("LabelText") %>" />