关于ASP.NET中“runat”属性的问题?

时间:2010-07-18 08:07:11

标签: asp.net

我经历了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 个答案:

答案 0 :(得分:2)

标有runat="server"的任何元素都让框架知道这将是服务器端的控件。本文有更多详细信息:

答案 1 :(得分:1)

不,ASP.NET中没有这样的嵌套,您必须为要在后面的代码中使用的每个控件指定“runat”,这是ASP.NET Web库的一部分。

因为ASP.NET只能在“runat”的帮助下识别客户端标记(在浏览器上运行的html)和服务器端标记之间的区别