我经历了this线程,但无法理解 . 我是ASP / HTML /服务器端编程的新手 .
我尝试在.aspx文件上运行此代码:
<form id="form1" action="Default.aspx">
<div>
<asp:Label ID="lblName"></asp:Label>
</div>
</form>
当我尝试在CodeFile中使用它时出错:
protected void Page_Load(object sender, EventArgs e)
{
lblName.Text = "123";
}
“lblName不存在” .
但是如果我使用带有标签的runat =“server”属性,则此代码可以正常工作 .
此外,是否有任何嵌套runat属性的概念 . 例如,如果我为上面的表单指定runat = server,表单中的所有控件是否会自动配置为在服务器上运行?该属性如何工作?
在这种情况下,我是否需要为标签指定runat = server?如果我在服务器端没有表单对象,服务器端如何知道标签在表单内?或者我错过了什么?
2 回答
标有
runat="server"
的任何元素都允许框架知道这将是服务器端的控件 . 本文有更多详细信息:不,ASP.NET中没有这样的嵌套,您必须为要在后面的代码中使用的每个控件指定“runat”,这是ASP.NET Web库的一部分 .
因为ASP.NET只能识别客户端标记(在浏览器上运行的html)和服务器端标记之间的差异,并帮助“runat”