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

9 浏览
0 Comments

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

我研究了这个帖子,但是理解得不多。我对ASP/HTML/服务器端编程非常陌生。

我尝试在一个.aspx文件中运行这段代码:

当我尝试在CodeFile中使用时,出现错误:

protected void Page_Load(object sender, EventArgs e)
    {
        lblName.Text = "123";
    }

"lblName不存在"。

但是,如果我在标签中使用runat="server"属性,那么这段代码就能正常工作。

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

什么情况下我需要为

标签和
0
0 Comments

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

原因:使用runat="server"标记的任何元素都会让框架知道这将是服务器端的一个控件。通过阅读提供的链接,我明白了如果不为lblName控件指定runat属性,它将无法工作。因此,如果需要以编程的方式修改任何控件的属性,就需要使用runat标签。对于你不打算更改的静态控件,不需要使用runat属性。

解决方法:从技术上讲,RUNAT意味着它不是一个愚蠢的字面量(字符串),而是一个在运行时存在的控件。所有其他HTML元素都会被编译成长字符串,没有任何服务器端逻辑。

0
0 Comments

ASP.NET中的"runat"属性是用来指定控件在服务器端运行的。在ASP.NET中,需要为希望在代码后端中使用的每个控件都指定"runat"属性,这是因为ASP.NET只能通过"runat"属性来识别客户端标签(在浏览器上运行的HTML)和服务器端标签。

对于

标签,你是否需要在服务器端指定runat=server取决于具体情况。ASP.NET有一个默认的父级form,默认情况下它具有runat=server属性,因此在ASP.NET中你不需要使用form标签。对于

标签,你不需要使用带有runat属性的div,你只需要在System.Web.HtmlControls和System.Web.WebControls中的控件上使用runat属性。

至于为什么ASP.NET需要关心label是否在form内部,实际上它并不关心。

0