Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有关「;runat";ASP.NET中的属性?_Asp.net - Fatal编程技术网

有关「;runat";ASP.NET中的属性?

有关「;runat";ASP.NET中的属性?,asp.net,Asp.net,我读了一遍,但不太懂。我对ASP/HTML/服务器端编程非常陌生 我尝试在.aspx文件上运行此代码: <form id="form1" action="Default.aspx"> <div> <asp:Label ID="lblName"></asp:Label> </div> </form> “lblName不存在” 但如果我在标签中使用runat=“server”属性,那么这段代码

我读了一遍,但不太懂。我对ASP/HTML/服务器端编程非常陌生

我尝试在.aspx文件上运行此代码:

<form id="form1" action="Default.aspx">
    <div>
        <asp:Label ID="lblName"></asp:Label>

    </div>
</form>
“lblName不存在”

但如果我在标签中使用runat=“server”属性,那么这段代码就可以工作

另外,是否有嵌套runat属性的概念。e、 如果我为上面的表单指定runat=server,那么表单中的所有控件都会自动配置为在服务器上运行吗?这个属性是如何工作的


在哪种情况下,我需要为标记和指定runat=server?如果服务器端没有表单对象,服务器端如何知道标签在表单中?还是我遗漏了什么?

不,ASP.NET中没有此类嵌套,您必须为要在代码隐藏中使用的每个控件指定“runat”,这是ASP.NET web库的一部分


因为ASP.NET只能在“runat”的帮助下识别客户端标记(在浏览器上运行的html)和服务器端标记之间的差异,任何标记为
runat=“server”
的元素都会让框架知道这将是服务器端的控件。本文提供了更多详细信息:


好的。。那么在哪种情况下,我需要为标记和指定runat=server?如果服务器端没有表单对象,服务器端如何知道标签在表单中?或者我遗漏了什么?ASP.NET有一个默认的父窗体,默认情况下它的runat=server,您在ASP.NET中根本不必使用form,而且您根本不必将div与runat一起使用,您只能对System.Web.HtmlControls和System.Web.WebControls中的控件使用runat at at at。为什么ASP.NET要注意标签在窗体中?在阅读了这个链接之后,我明白了为什么如果我不为那个控件指定runat属性,lblName就不能工作。因此,如果必须以编程方式修改任何控件的属性,基本上都需要runat标记。是这样吗?对于您不打算更改的静态控件,它是不需要的?从技术上讲,RUNAT意味着它不是一个愚蠢的文本(字符串),而是一个在运行时存在的控件。所有其他HTML元素都被编译成长字符串,没有任何服务器端逻辑。
protected void Page_Load(object sender, EventArgs e)
    {
        lblName.Text = "123";
    }