关于表单的使用
第 12 节: 12-HttpHandler案例
Content-Type:服务器返回给浏览器的文本类型是什么; 常用的有:text/html(html格式) image/gif(图片格式) text/plain(纯文本格式) text/css(css文件格式)等等
第13节:表单提交 哪些标签的哪些值会被提交给服务器呢?
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form action="Login.ashx">//action表示交给谁处理这个表单的内容 <input type="text" name="name" /> <input type="password" name="pwd" /> <input type="submit" /> </form> </body> </html> using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Web1 { /// <summary> /// Login 的摘要说明 /// </summary> public class Login : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html";//1、改为html类型 string name=context.Request["name"]; string pwd = context.Request["pwd"]; if (name == "admin" && pwd == "123") { context.Response.Write("<html><head></head><body>"); context.Response.Write("<h1>"+name + "欢迎进入本网站!</h1></body>"); } else { context.Response.Write("<h1>" + "登陆失败!</h1></body>"); } } public bool IsReusable { get { return false; } } } }
将用户填写的内容提交到服务器有如下几个条件(使用浏览器监视网络请求验证):
1、只能为 input、textarea、select三种类型的标签。
2、只有三种标签的value属性的值(select是选中项的value)才会提交给服务器。标签必须设定name属性(道理:没有name怎么拼网址i=5)。如果要将标签的value属性值提交到服务器,则必须为标签设定name属性,提交到服务器的时候将会以“name=value”的键值对的方式提交给服务器。name是给服务器用的,id是给Dom用的。
3、对于RadioButton,同name的为一组,选中的RadioButton的value被提交到服务器。(讲道理:如果都提交,那服务器知道谁被选中了吗?)
4、当input=submit的时候,只有被点击的按钮(要有name)的value才会被提交(道理:否则我知道谁被点了?)。
5、放到form标签内。只有放到form标签内的标签才可能会被提交到服务器,form之外的input等标签被忽略。
1、Html表单<form>可以自动给服务器提交参数(get是通过url,post是通过报文体,后面会讲区别),不用用户自己拼url。action指定把表单内容提交给谁。
2、浏览器向服务器端提交数据,被提交数据的表单(input、select、textarea等)放到form中,form中通过action属性设定表单被提交给哪个页面,为了在服务端取出表单项的值,需要在HTML中为表单元素设定name属性
3、注意id是给JS操作Dom用的,name才是提交给服务器用的。id不能重复,name可以重复,重复的name的值都会被提交给服务器。
4、服务器端用context.Request["username"]来根据表单项的name来获得提交的属性值。
5、checkbox没选中为null,选中为"on"。