开发工具与关键技术:Adobe Dreamweaver JavaScript
作者:肖健勇
撰写时间:2020年4月30日
表单提交:
首先弄一个简单的表单布局
提交表单有两种方法:
1、 post提交
2、 get提交(默认提交方式)
两者相比,get更简单也更快,而且在大部分情况下都能用
在以下面几种情况中,使用post
1、 无法使用缓存文件,(更新服务器上的文件或数据库)
2、 向服务器发送大量数据(post没有数据量限制)
3、 发送包含未知字符的用户输入时。
两者区别:
- get是用来向服务器上获取数据,而post是用来想服务器传递修改数据
- get将表单里的数据添加到action所指向的url后面,并且两只之间使用“?”链接而各个变量之间使用"&"连接;PSOT是将表单中的数据放在form的数据体(FormData)中,按照键值对的方式,传递到所指向的action
- GET是不安全的,因为在传输过程中,数据被放在请求的url中这样用户可以直接在浏览器上看到提交的数据,而POST的所有操作对用户来说都是不可见的,数据都在数据体(FormData)中
- GET方法向URL添加数据,URL的长度是受限制的(URL的最大长度是2048个字符),POST提交无限制
- GET方式获取数据后,刷新不会有负面的影响,因为它只是获取数据,POST数据会被重新提交可能会产生不良的后果(浏览器应该告知用户数据会被重新提交)
- 数据类型的限制:GET只允许ASCII字符,POST则无限制(如果提交二进制数据(例如:图片),需要使用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() {
声明变量接收input框里的值
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(“数据不完整!”);
}
}
实体类接收数据
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);
}
创建实体类
public class Person
{
public string name { get; set; }
public string sex { get; set; }
public string address { get; set; }
}