为什么在ASP.NET中要包含runat="server"?

3

大家好,我正在处理与ASP.NET相关的Web问题,但是遇到了一些困惑。
每当我需要使用类似于<asp:Label ID="lblName" />这样的服务器标记控件)时,为了将其作为可编程元素,以便在后台代码中访问它,我必须包含 runat =“server”。但如果必须包含它,那么它与普通的HTML标记有什么区别呢?我的意思是,为什么要包含runat ="server",而没有runat ="server"ASP.NET标记与一般的HTML标记有何不同?


1
为什么ASP.NET WebForms需要Runat =“Server”属性? - Tim Schmelter
runat server 意味着所有控件在每个操作时都会经历页面回发。 - Akshay Joy
1个回答

3

当标记代码被解析时,所有内容都会被转换为服务器控件。

任何没有带有runat="server"标签的元素最终都只会成为一个LiteralControl控件,其中包含HTML代码作为文本。

例如,像这样的标记:

<div>
  <p>
    <span id="asdf" runat="server"> </span>
  </p>
</div>

最终会成为控制器:
LiteralControl("<div><p>")
HtmlGenericControl("span") with id asdf
LiteralControl("</p></div>")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接