runat=”server”

来源:互联网 发布:闲鱼怎样申请淘宝介入 编辑:程序博客网 时间:2024/06/05 03:12

runat=”server”的时候到底发生了什么?

既然问题是从runat=”server”引起的,那么就得从它入手。runat=”server”这个标记,旨在aspx页面被编译的时候,用来标识我们页面上的html应该如何解释的。准确地说,aspx页面的生成原理是,aspx页面会被读入分析器,当一个HTML标签内不包含runat=”server”的时候,它将被当作字符串输出或者编译成new LiteralControl(“具体的文本”);

当遇到runat=”server”的时候,如果标签可以被转换为一个HtmlControl,则转换成HtmlControl,否则将会被解释为一个HtmlGenericControl对象,因为要转换成对象,所以会多出一些规则检查,假设没有runat="server",则你的所有字符都将被当作文本进行输出,但是如果加上runat="server",则所有的属性如果有对应的则转换成“属性=value”的模式,如果没有,则转换成SetAttribute("name", "value");的形式,因此如果id="",则会变成XXX.ID="",而此处的ID则需要满足一般的命名规范,以满足在别的地方直接以ID进行对象引用,也就是说必须是字母/下划线打头。对其他属性则没有过多严格的要求,但是对应的<%=str%>将只以文本进行输出,而不会替换为其值。

0 0