asp.net页面必须要<form runat="server"><form>吗

记得曾经一本书上说过“asp.net页面就是一个web窗体。”可是下面的asp.net页面没有web窗体,但是它照样能运行,为什么?form1.htm文件代码:<!DOC... 记得曾经一本书上说过“asp.net页面就是一个web窗体。”
可是下面的asp.net页面没有web窗体,但是它照样能运行,为什么?
form1.htm文件代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
</head>
<body>
<center>
发送GET请求
<hr/>
<form action="GetInfo1.aspx" method="get">
您的大名:<input type="text" name="nickname"/><br/>
<input type="submit" value="发送"/>
</form>
</center>

</body>
</html>

GetInfo1.aspx页面代码如下:
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="sss" runat="server">
<center>
接收GET方法传来的值:
<hr/>
<%
string NickName = Request.QueryString["nickname"];
Response.Write("GET方法传来的nickname的值为:"+NickName);
%>
</center>
</form>

</body>
</html>
ee
展开
 我来答
mwtcz
2010-05-06 · TA获得超过1322个赞
知道小有建树答主
回答量:1367
采纳率:50%
帮助的人:1031万
展开全部
web form 实际就是指

<form runat=server> 这样的情况。asp.net使用web form,并不代表asp.net就放弃了原始的form提交的方式。<form标签,有没有runat=server,情况是完全不同的。有runat=server,那么你在页面里就可以使用 控件.属性的方法来访问表单提交的值。例如 string name = this.textbox_name.text;

如果没有,那么asp.net实际也支持原始的form的方式,这种方式,你要想获取表单的内容,就要使用request.querystring or request.form来获取。就是你GetInfo1.aspx页面里所写的代码。如果你以前写过php,asp,实际都是这种方式。

综上所述,asp.net既支持新的方式,也支持老的方式,所以那个页面能运行一点不奇怪。
luoyingcan
2010-05-06 · 超过39用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:109万
展开全部
可能我没弄明白你问这个问题的目的。
1: string NickName = Request.QueryString["nickname"];
是不是想问 form1.htm 的Form没有runat=server,但是GetInfo1.aspx还能获取到这个nickname么?
如果这样的话:你看看你的浏览器地址栏: GetInfo1.aspx?nickname=XXXXXXXXXXX

2:<form action="GetInfo1.aspx" method="get">
这个get是相对于post来说的。例如你这里用的是get,服务器端要用Request.QueryString来获取。你也可以手动的在地址栏修改它。
如果你用post.服务器端要用Request.Form[]来读取,你再看看用这种方式地址栏上的URL有什么区别。
3:runat="server"这个属性,只是用来表示这个对象在不在服务器上运行,需不需要在服务器端对它进行编程访问(还需要一个ID),html就是一个静态页面,文件中的标签,不需要也不可能runat sever。
4:<form id="sss" runat="server">
<center>
接收GET方法传来的值:
<hr/>
<%
string NickName = Request.QueryString["nickname"];
Response.Write("GET方法传来的nickname的值为:"+NickName);
%>
</center>
</form>
这个不是你说的窗体么?对于“窗体”,你是怎么理解的呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落月Prc
2010-05-06 · TA获得超过2789个赞
知道大有可为答主
回答量:2011
采纳率:100%
帮助的人:2438万
展开全部
asp.net页面必须要<form runat="server"><form>吗?

答案:
在使用具有runat="server"属性的服务器控件时,必须把服务器控件放在<form runat="server"></form>中。
否则,不需要有。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leejin_21
2010-05-06 · 超过70用户采纳过TA的回答
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:184万
展开全部
action="GetInfo1.aspx" 已经指定 form提交的时候交给GetInfo1.aspx这个页面来做,
这时候你肯定会问,什么时候提交呢?看一下这个标签<input type="submit" value="发送"/> 这个type="submit"就是提交按钮,它是html元素。点击它,就会提交form 而form提交时会交给GetInfo1.aspx 这个页面来做,这时候,肯定会进入GetInfo1.aspx的Page_Load事件了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式