入门1.html

•<form action="入门1.ashx">

•    <input type="text" name="username" /><input type="submit" />

•</form>

新建一个【一般处理程序】入门1.ashx,

 

ProcessRequest中写

    •context.Response.ContentType = "text/html";

    •string username = context.Request["username"];

    •context.Response.Write(username + "<font color='red'>你好</font>"+Guid.NewGuid());//根据当前电脑的硬件编号+系统时间微秒数

l每当用户请求访问ashx页面的时候,ProcessRequest方法就会被调用,在这里通过访问context.Request获得访问者的请求参数等。

然后在ProcessRequest中通过context.Response向浏览器发回数据给浏览器。ProcessRequest结束之时就是服务器为这个浏览者本次访问服务完成之时

 

l浏览器向服务器端提交数据,被提交数据的表单(input、select、textarea等)放到form中,form中通过action属性设定表单被提交给哪个页面,为了在服务端取出表单项的值,需要在HTML中为表单元素设定name属性,注意id是给JS操作Dom用的,name才是提交给服务器用的。在服务器端用context.Request["username"]来根据表单项的name来获得提交的属性值。通过context.Response.Write向浏览器输出处理后的显示HTML内容.

 

l注意

l当我们点击【提交】按钮以后是浏览器将用户填写的文本框等控件中的值“提取”出来发送给服务器,而不是服务器来读取用户填写的这个页面。哪些标签的哪些值会被提交给服务器呢?将用户填写的内容提交到服务器有如下几个条件:

只能为

 

只有value属性的值才会提交给服务器。以input标签为例,input标签有title、type、disabled等属性,但是这些属性都是供显示用的,用户并不能修改,只有value属性才是用户输入的属性,因此只有value属性的值才会被提交到服务器。

 

标签必须设定name属性。学习Dom的时候我们知道如果要通过JavaScript操作标签,必须为标签设定Id。如果要将标签的value属性值提交到服务器,则必须为标签设定name属性,提交到服务器的时候将会以“name=value”的键值对的方式提交给服务器,多个键值对之间用&分割。除了单选按钮等少数标签之外,大部分标签的name的值不能重复。name是给服务器用的,id是给Dom用的。对于RadioButton,同name的为一组,选中的RadioButton的value被提交到服务器。

 

如果设置了控件的disabled属性的话,浏览器也不会提交该控件的值。

 

放到form标签内。只有放到form标签内的标签才可能会被提交到服务器,form之外的input等标签被忽略

 

一句话: 只要input标签位于Form表单内,并且有name属性,其value都会被提交到服务器。