什么时候不需要在ASP.NET中使用runat="server"
?
编辑:感谢您的所有答案,但我真的在runat="server"
标记中考虑<asp:
。
答案 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";
}
}
此代码在页面加载事件
中的运行时创建标签