什么时候不是在asp.net中使用runat =“server”?

时间:2011-05-01 17:07:22

标签: asp.net runatserver

什么时候不需要在ASP.NET中使用runat="server"

编辑:感谢您的所有答案,但我真的在runat="server"标记中考虑<asp:

6 个答案:

答案 0 :(得分:3)

在使用ASP.NET控件时使用runat=server属性,和/或您需要以编程方式访问代码隐藏中的这些控件。

HTML控件不需要此属性。如果您希望能够在代码隐藏中访问它们,则可以使用<span> <div><table>等任何HTML元素。

<asp:Label runat="server" id="foo" />
<div runat="server" id="bar />
...
foo.Text = "Hello Label";
foo.Attributes["class"] = "baz";

答案 1 :(得分:1)

您需要在要解析为服务器控件的任何控件上使用runat="server"

任何带有runat="server"的元素都将被解析为Page herarchy中的服务器控件。其他任何内容都将作为纯文本处理,并放入页面层次结构中的LiteralControl控件。

异常是不是真实元素的元素,而是另一个服务器标记中的特殊标记,例如ContentTemplate标记。它们不需要runat="server",因为包含控件将解析它们。

答案 2 :(得分:0)

当您不希望服务器端ASP.NET向我们呈现服务器端变量时。

一般来说,当您不需要在服务器端操作DOM元素时,不要使用它,例如仅用于布局目的。

答案 3 :(得分:0)

如果没有runat =“server”,也没有其他方法可以使html控件服务器端控件。它确实看起来很奇怪,因为你不能做runat =“client”。

总而言之,你不能把它留在任何ASP .Net控件上,这可能是为创建ASP .Net Web表单的开发人员找到所有服务器端控件的简单和最简洁的方法。

来源:http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/

答案 4 :(得分:0)

标记runat =“server”表示脚本块中包含的代码将在服务器上运行(而不是在客户端上运行)。在执行时,ASP.NET将创建包含此代码的服务器端对象以及Page类的实例,以包含在页面内定义的控件作为其给定类型的实例(System.Web.UI.WebControls.Textbox,例如)。此服务器端对象将根据用户请求调用,并将执行代码以响应事件。

答案 5 :(得分:0)

在运行时创建控件

我在运行时需要一个标签,时间不需要runat =“Server”不是必需的

实施例

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
   {
    Label  lblNew = new Label();
    lblNew.ID ="lblnew";
    lblNew.Text ="Test";
    }
}

此代码在页面加载事件

中的运行时创建标签