ajax获取json web窗体后台代码

本文介绍如何在C#中手动编写JSON代码以及使用序列化和反序列化进行数据处理。通过示例展示了获取分类列表的方法实现,并在前端使用AJAX请求处理返回的JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、手工编写JSON代码

1.添加引用

using System.Web.Services;

2.添加方法

//获取分类列表

 
[WebMethod]
    public static string getFoodClasses(int parentID)
    {
        onnEntities onndb = new onnEntities();
        string strJson = "{\"classlist\":[";
        IQueryable<food_class> fcList = onndb.food_class.Where(s => s.class_ParentClassID == parentID);
        foreach (food_class i in fcList)
        {
            strJson += "{\"id\": " + i.class_ID + ",\"title\":\" " + i.class_Title + "\"},";
        }
        strJson = strJson.Substring(0, strJson.Length - 1);
        strJson += "]}";
        return strJson;
    }

二、利用JSON序列化和反序列化

  1. C#后台代码
		/// <summary>
        /// 获取二级分类
        /// </summary>
        /// <param name="FatherID">一级分类ID</param>
        /// <returns></returns>
        public JsonResult GetSourceClass(int FatherID)
        {
            List<foodSourceClass> ts = entities.foodSourceClass.Where(m => m.ClassFatherID == FatherID).ToList();
            return Json(ts);
        }

2.前台Ajax请求函数及反序列化

function Class1Change() {
        var c1 = $("#Class1").val();//获取一级分类ID
        var targetUrl = "/Common/GetSourceClass";//请求Action路径
        var data = new FormData(); 
        //FormData对象加入参数
        data.append('FatherID', c1); 
        $.ajax({
            type: 'post',
            url: targetUrl,
            cache: false,    //不需缓存
            processData: false, //需设置为false。因为data值是FormData对象,不需要对数据做处理
            contentType: false, //需设置为false。因为是FormData对象,且已经声明了属性enctype="multipart/form-data"
            data: data,
            dataType: 'json',
            success: function (data) {
                var jsonData = JSON.stringify(data);// 转成JSON格式
                var result = JSON.parse(jsonData);// 转成JSON对象
                alert(result[0].Id);//弹出提示第一个对象的ID
            },
            error: function () {
                alert("上传失败")
            }
        })
    }

3.前台提示截图
提示第一个元素的ID:3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值