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(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 listData = JsonConvert.DeserializeObject>(json);

listData 就是对象列表

你可能感兴趣的:(C#,json)