runat="server" 是什么意思?

<body>
<form runat="server" id="form1" method="post" action="test.aspx">
<div>
<input id="Text1" type="text" name="name1"/>
<input id="Submit1" type="submit" value="submit" />
<input id="Reset1" type="reset" value="reset" /></div>
</form>
</body>
以上代码点击按钮的时候不能转到test.aspx页面,删除runat="server"后就可以正常转到test.aspx页,而且能够正常显示,为什么啊?
既然说毫无意义,删除和不删除效果确不一样啊!

runat="server" :运行在服务器端。

既然有了runat="server"别再加action了,两个的提交方式都不一样,action将form数据给

test.aspx页面,而runat="server"直接回交服务器,处理数据,又以数据加密后的hidden属性的input

件插入回去实现表单的状态保存,如果test.aspx是另一个页面,在进一步说就是你可以在页面的.cs文件中直接使用,与在客户端运行相对的;

比如java脚本,是浏览器解析的,对于有此语句的控件,转换成对应的HtmlControl子类加入到页面的控件集合,对于没有此语句的,直接写入html中。


扩展资料


HTML 服务器控件 (HTML server control)

属于 System.Web.UI.HtmlControls 命名空间的 ASP.NET 服务器控件。HTML 服务器控件直接映射到 HTML 元素,并在 ASP.NET 页中声明为一个由 runat="server" 属性标记的 HTML 元素;

例如 <button runat="server" />。与 Web 服务器控件相比,HTML 服务器控件没有 asp 标记前缀。

WEB服务器控件是HTML控件的一种扩展,区别是:

1、前者可以触发服务器控件特有的事件,后者只能通过回递的方式触发服务器上的页面级事件。

2、输入到前者中的数据在请求之间可以维护(即具有状态管理功能),而后者无法自动维护数据,只能使用页面级的脚本来保存和恢复。

3、前者可以自动检测浏览器并调整到恰当的显示,而后者没有自动适应功能,必须在代码中手动检测浏览器。

4、每个服务器控件都具有一组属性,可以在服务器端的代码中更改控件的外观和行为,而后者只有HTML属性。

如果某些控件不需要服务器端的事件或状态管理功能时,可以选择HTML控件,这样可以提高应用程序的性能。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-23
runat="server"如LS那位仁兄说的那样,既然有了runat="server"别再加action了,两个的提交方式都不一样,action将form数据给了test.aspx页面,而runat="server"直接回交服务器,处理数据,又以数据加密后的hidden属性的input控件插入回去,实现表单的状态保存~如果test.aspx是另一个页面当然就有了你说的那种现象了本回答被提问者和网友采纳
第2个回答  2009-01-08
说的是这个form中包含的控件里的代码通过提交按钮Submit1提交给服务器页面来处理,runat是处理页面,而server代表的是服务器。如果不加这句,那么就和ASP一样了,根本就不需要ASP.NET了。
第3个回答  2009-01-08
asp控件都有runat=server 的属性,写的时候VS会提示你输入这个属性,这个属性表示这是一个服务器端空间,即这个空间用来客户端和服务器端进行交互。
html控件也可以加这个属性,但是使用起来比较麻烦,需要加入隐藏按钮,通过JS触发 onserverclick()事件来跟服务器端进行数据交互。

input 属于html控件,可以不加这个属性
第4个回答  2009-01-07
加runat="server"表示该控件是服务器端控件,不加表示是客户端控件。
就你这段代码而言,form里加runat=server毫无意义
相似回答