•只能为input, textarea, select三种类型的标签, 只有input(文本框/CheckBox等)用户才可以填写值,<label>,<p>,<font>等标签仅提供显示用,没有提交到服务器的必要.
•只有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等标签被忽略.
11.使用模版来清晰代码,利用虚拟模版网页
•使用隐藏字段, 模拟IsPostBack, <input type="hidden" value="true" />
•在模版网页中,涉及到修改值得时候, 可以使用占位符, 之后, 直接替换就可以了, 使用{name}的形式即可
public class _08Cal : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/html"; //--------------------读取html内容模版---------------------- //根据虚拟路径获得物理路径 string path = context.Server.MapPath("CalculateModel.htm"); //这里仔细记住 string strHTML = System.IO.File.ReadAllText(path); //这里也要好好记住 //------------------获得浏览器提交的内容--------------------------- string strNum1 = context.Request.Form["txtNum1"]; string strNum2 = context.Request.Form["txtNum2"]; int num1 = 0; int num2 = 0; string result = ""; if (!string.IsNullOrEmpty(context.Request.Form["hidIsPostBack"])) { if (!string.IsNullOrEmpty(strNum1) && !string.IsNullOrEmpty(strNum2)) { if (int.TryParse(strNum1, out num1) && int.TryParse(strNum2, out num2)) { result = (num1 + num2).ToString(); } else { result = "输入格式错误"; } } } //-------------------------输出html到浏览器------------------------ //字符串替换,进行赋值 strHTML = strHTML.Replace("{num1}", num1.ToString()).Replace("{num2}", num2.ToString()).Replace("{result}", result.ToString()); context.Response.Write(strHTML); } public bool IsReusable { get { return false; } } }
//---------------------------------模版网页显示--------------------------------------- <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html> < head> < title> 计算器 </title > </ head> < body> < form action ='06Calculate.ashx' method ='post'> < input type ='text' name ='txtNum1' value ='{num1}' /> + < input type ='text' name ='txtNum2' value ='{num2}' /> = < input type ='text' readonly ='readonly' value ='{result}' />< br /> < input type ='submit' value ='计算' /> < input type ='hidden' name ='hidIsPostBack' value ='1' /> </ form> </ body> </ html>
12.表单的提交方式Get与Post