ashx一般處理檔案接收前端傳來的引數
前端通訊方式:$.post(url, query,function (result) {});
接收方式:
1.物件方式
前端傳來的如果是from表單封裝成的json資料,以表單中各項的name屬性對應名字新建一個實體類,
如圖:
然後引入Newtonsoft.Json,
var json = HttpContext.Current.Request["json"];
var jss = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
UserInfo userInfo = (UserInfo)JsonConvert.DeserializeObject<UserInfo>(json, jss);
就可以取值了,如:userInfo.name
記住,表單各項的name屬性一定與實體類中各項相同,否則你懂的:會報錯。
2.接收直接解析
如:
var json = context.Request["json"];
JObject jo = (JObject)JsonConvert.DeserializeObject(json);
string name= jo["name"].ToString();
jo是整個表單物件,物件也是表單各項name屬性物件的名字
3.最簡單的接收方式
context.Request["name"];
介是萬能接收法,無論是'url?name=zs',$.post(url, {name:'zs'},function (result) {})
都可以接收到
4.form表單單個接收
如果是easyUI這樣的表單提交,如:
$('#ff').form('submit', {
success: function(data){
var data = eval('(' + data + ')');
if (data.success){
alert(data.message)
}
}
});
可以這樣接收:
string name = context.Request.Form["name
"];
string pwd = context.Request.Form["pwd"];
注意名字對應
5.HttpContext.Current.Request["UserID"];
如果只有一個引數,也要轉換為json格式:
如var data = "UserID=" + JSON.stringify(USERID);
$.post(url, data,function (result){})或者$.post(url, {UserID:'12'},function (result){})
6.接收多個物件
在easyUI的datagrid若選中多行並將其轉成json傳給處理程式,先獲取選中的行
如:var rows= "json=" + JSON.stringify(rows);用$.post通訊
先建立個實體,對應每一行的每個欄位(field),假設實體名字叫Data
接收:
var json = context.Request["json"];
var jss = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
List<Data> listData = JsonConvert.DeserializeObject<List<Data>>(json);
listData 就是物件列表