欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AJAX 提交form表单,以及使用C#后台接收

程序员文章站 2022-07-12 20:17:50
...

今天不扯别的,直接进入正题。

前台代码:

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);
}

 

AJAX 提交form表单,以及使用C#后台接收

通过上面的截图大家能看出,C#后台获得数据的格式:ID=&equipnum=2222,这就需要对字符串进行分割,并对应存入Dictionary内;同时汉字被"URL编码"了,那么这就需要System.Web.HttpUtility.UrlDecode()方法对汉字进行解码。