今天不扯别的,直接进入正题。
前台代码:
HTML:
<form id="addform" action="#">
<input type="text" name="userName" value="李四">
<input type="text" name="age">
<input type="text" name="sex">
<input type="text" name="phone">
<form>
JS:
$.ajax({
url: "../../../ashx/APP/App_sysMenu.ashx",
data: {
formdata: $('#addform').serialize(),
operate: "addStuInfoe"
},
type: "post",
success: function (data) {
console.log(data);
if (data == "true") {
alert("增加成功");
}
else{
alert("增加失败");
}
});
$('#addform').serialize():通过“addform”(Id)获取所在<form>内所有<input>标签的name和value值,并一一对应的存储到 formdate内(如 userName:李四)。注意:通过serialize()方法获取的数据类型是 FormDate。
估计会有人要问了,用<form>传值有什么好处?当你在向后台提交大量数据时,可以通过serialize()方法将<form>内的所有<input>标签内的数据存储到formdate内,并将其传递到后台。
C#后台代码:
string formInfor = CheckResponse.GetResponse("formdata");
string[] formArray=formInfor.Split('=', '&');
Dictionary<string, object> eqpInfor = new Dictionary<string, object>();
for (int i = 0; i < formArray.Length-1; i = i + 2)
{
string nvalue= System.Web.HttpUtility.UrlDecode(formArray[i + 1]);
eqpInfor.Add(formArray[i], nvalue);
}
通过上面的截图大家能看出,C#后台获得数据的格式:ID=&equipnum=2222,这就需要对字符串进行分割,并对应存入Dictionary内;同时汉字被"URL编码"了,那么这就需要System.Web.HttpUtility.UrlDecode()方法对汉字进行解码。