1. 程式人生 > >ashx一般處理檔案接收前端傳來的引數

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 就是物件列表