服务器标记格式都有哪些?

骑着蜗牛去爬山 2012-01-27 08:54:08
前台代码
<asp:TextBox ID="TextBox1" Text='<%=m() %>' runat="server"></asp:TextBox>
<br />

<asp:Button ID="Button1" runat="server" Text='<%=m() %>' onclick="Button1_Click" />
后台代码
public string m()
{
return "123";
}
为什么我得到的textbox1和button1的text都是“<%=m() %>”,而不是“123”呢?
哪错了?
...全文
171 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
告诉你如何看到asp.net生成的源代码!

例如你可以在页面声明上顶部这个地方写
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
asdfaskdfafs as asdfs
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
这里胡乱写一些字母,然后点鼠标右键,选择“直接用浏览器查看”,也就是不经vs的预编译而直接用浏览器查看此页面,之后你就会看到一个“错误提示页”,在这个页面上有一个链接“查看错误源”,点击它你就能够看到asp.net所动态解析生成的源代码了。
  • 打赏
  • 举报
回复
举个例子吧,比如说
<asp:Label ID="Label1" runat="server" Text="<%# Session.SessionID %>"></asp:Label>
<span style="color: red">
<%= aabb() %>
</span>
<img src="mm.png" />


这里,第一行内容编译为一个Label控件,之后的4行内容编译为一个LiteralControl控件。因此对于Label的Text属性,它自动将那个表达式生成为DataBinding事件处理方法中为Text属性赋值的右边的表达式,只要你灵活地随时调用Label控件DataBind()方法就会触发事件去执行它。而后边的html文本内容,生成为在Render方法中
writer.Writer("<span style=\"color:red\">");
writer.Writer(aabb());
writer.Write("</span><img src=\"mm.png\" />");
这样的代码,显然你没有办法去调用什么控件的DataBind方法去调用它,而它自动在页面Render阶段最后会去执行。
  • 打赏
  • 举报
回复
所有“其它”服务器控件器控件,其属性声明中的数据绑定表达式,都是<%# %> 这种形式。asp.net是将这种<%# %>内部的代码自动编译为DataBinding事件发生时为控件属性赋值的(右边)表达式。

对于html文本,也就是编译为LiteralControl控件(因此我上面才写了“其它”二字)的Text的那些内容,才可以使用<%= %>这样的描述。asp.net是将这种<%= %>内部的代码自动编译为其Render阶段执行类似 HtmlWriter.Write(...)中的表达式。
孟子E章 2012-01-27
  • 打赏
  • 举报
回复
asp.net的机制已经跟asp时代不一样了,无需再进行这样的写法了,你可以直接TextBox1.Text = m()
另外,也可以使用<%#%>进行绑定,

<asp:TextBox ID="TextBox1" Text='<%#xxx %>' runat="server"></asp:TextBox>

public string xxx= "123"

TextBox1.DataBind()

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧