数据提交有很多种以下是其中较为简单的Get和Post提交方法
而这两种提交方式有一定的区别
get提交时参数直接暴露在URL上。
则Post提交会封装再提交而不会暴露在URL上。
POST数据会被重新提交可能会产生不良的后果(浏览器应该告知用户数据会被重新提交)
而数据类型的限制:GET只允许ASCII字符,POST则无限制(如果提交二进制数据(例如:图片),需要使用POST方法)
首先在控制器里的四种提交方式:
- 通过形参的方式接收表单提交的数据(可以接收post与get提交的数据)
public ActionResult GetData(string name,string sex,string address)
{//断点
string str = "1.通过形参的方式接收表单提交的数据"+name + "&" + sex +
"&" + address;
return Content(str);}
- 通过FormCollection来接收表单的数据(只可以接收Post提交过来的数据)
public ActionResult getDataByFormCollection(FormCollection form)//实例
{
string name = form["name"];
string sex = form["sex"];
string address = form["address"];
string str = "2.通过FormCollection来接收表单的数据" + name + "&" +
sex + "&" + address;
return Content(str); }
- 通过 Request.Form["name的属性值"]获取表单数据(只可以接收Post提交过来的 数据)
public ActionResult getDataByRequest()
{
string name = Request.Form["name"];
string sex = Request.Form["sex"];
string address = Request.Form["address"];
string str = "3.通过Request.Form来接收表单的数据" + name + "&" + sex
+ "&" + address;
return Content(str); }
- EntityClass实体类接收数据(可以接收post与get提交的数据)
public ActionResult getDataByEntityClass(Person person)
{
string name = person.name;
string sex = person.sex;
string address = person.address;
string str = "4.EntityClass实体类接收数据" + name + "&" + sex + "&"
+ address;
return Content(str);
}
//js中 Person 通过构造函数去创建对象
*这个很重要,不去创建的话上面的参数找不到对象就无法查找。
//创建实体类
public class Person {
public string name { get; set; }
public string sex { get; set; }
public string address { get; set; }
}
}
接下来就是去视图把对应的数据查找并且输出就是了,分别是get和post
提交方式的按钮名称(自定义变量)
👇
function getData() {
var name = document.getElementById("txtName").value;
var sex = document.getElementById("cboSex").value;
var address = document.getElementById("txtAddress").value;
if (name != "" && sex != 0 && address != "") {
var myform = document.getElementById("myform");
myform.method = "get";//提交方式
//1.可以通过参数形式接收数据
// myform.action = "/Form/GetData";//提交地址
myform.action = "/Form/getDataByEntityClass";//url == "/控制器/方法的名称"
myform.submit();
} else {
alert("数据不完整!");
}
}
function postData() {
var name = document.getElementById("txtName").value;
var sex = document.getElementById("cboSex").value;
var address = document.getElementById("txtAddress").value;
if (name != "" && sex != 0 && address != "") {
var myform = document.getElementById("myform");
myform.method = "post";//提交方式
// myform.action = "/Form/GetData";//提交地址
//1.可以通过参数形式接收数据 2.可以通过FormCollection接收数据 3.Request.Form接收
表单数据
//myform.action = "/Form/getDataByFormCollection";
//myform.action = "/Form/getDataByRequest";
myform.action = "/Form/getDataByEntityClass";//url == "/控制器/方法的名称"
myform.submit();
} else {
alert("数据不完整!");
}
}