1.form action
<form action="./02_demo.php" method="post" enctype="multipart/form-data">
账号: <input type="text" value="jack" name="username" placeholder="请输入账号"><br>
密码: <input type="password" value="123456" name="userpwd" placeholder="请输入账号"><br>
性别: 男<input type="radio" name="sex" value="男"> 女<input type="radio" name="sex" value="女"> 保密<input type="radio" name="sex" value="保密"><br>
城市<select name="city">
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广州">广州</option>
<option value="重庆">重庆</option>
<option value="天津">天津</option>
</select><br>
<button>传参</button> </form>
2.js
Ajax
Ajax的核心是XmlHttpRequest。我们通过对该对象的操作来进行异步的数据请求。jQuey中使用.ajax,.post等,Angular中使用$http。
创建XHR对象
状态变化事件
onreadystatechange()状态变化函数。readyState的取值0为未初始化,未调用open,1已open未send,2已send未回复,3回复部分,4全部回复。在后台使用推送机制的话,前端会间断的收到推送数据,状态为3。responseText包含曾经的所有推送数据,所以每次读取应该根据旧数据长度查找最新的数据的位置。
响应完成事件
无论什么响应,接收完成就触发。
响应异常事件
进度事件
lengthComputable表示进度信息是否可用,position表示已接收数,totalSize表示预期接收数。
后台接收
方式1:
-
Request.Form[""] post
-
Request.QueryString[""] get
-
System.Web.HttpContext.Current.Request
后台返回
json方式1
-
string jsonData = JsonConvert.SerializeObject(ViewData);
-
return Json(jsonData, JsonRequestBehavior.AllowGet);
Content 方式
return Content("toastr.success(\'系统错误,重新登录\')", "application/x-javascript");
TempData方式
-
empData["lognum"] = 4;
-
return RedirectToAction("LoginFail", "Help");
Tempdata保存在session当中,当处理完之后会清除相应session值,所以只能够传递一次
页面之间的传值
Session
-
Session["Pwd"].ToString()
-
Session["AdminUserName"]
后端代码如下: Session["chars"] = this.DropChar.SelectedItem.ToString();
Session["para"] = this.DropPara.SelectedItem.ToString();
Session["enery"] = enery;
Session["fromtime"] = StartTime1.Text;
Session["totime"] = EndTime1.Text;前端代码如下:
var enery = "<%=Session["enery"]%>";
var para = "<%=Session["para"]%>";
var time = "<%=Session["time"]%>";
var fromtime = "<%=Session["fromtime"]%>";
var totime = "<%=Session["totime"]%>";
var fromto = fromtime.toString() + \'-\' + totime.toString()
这样来获取到对应的session里面的属性值
还有另外一种写法,配合input表单来使用
<input type="hidden" id="enneryone" value=" <%= Session["enery"] %>" />
需要注意的是此时的input表单为隐藏表单上面的方法适用于aspx,cshtml使用razor,因此使用@语法
前台发送给后台
json jquery
$.ajax({
url: "/Help/GetDepts",
dataType: "json",
cache: null,
data: company,
type: "GET",
error: function () { toastr.warning(\'当前部门没有用户\') },
success: function (response) {
datanew = JSON.parse(response);
var options = "";
if (datanew["depts"].length > 0) {
options += "--请选择部门--";
for (var i = 0; i < datanew["depts"].length; i++) {
options += "<option value=" + datanew["depts"][i]["Value"] + ">" + datanew["depts"][i]["Value"] + "";
}
}
$(id).html(options);
}
4.viewdata 和viewbag
两者可以呼唤
在后台
viewdata["nam"]=""
viewbag.nam=""
上面等价
在前台
@viewdata
或@viewbag就可以取值