.net 获取json前端数据

本文介绍了如何在.NET中接收和处理来自前端的JSON数据。首先阐述了需求,即允许客户端修改数据后以JSON形式发送到后端并存储到数据库。接着详细讲解了解决方案,包括前端构建JSON字符串、后端接收和处理字符串以及创建对应的实体。在实际操作中,提到了两个关键问题:一是前端构建JSON对象时的注意事项,二是后端处理JSON数组或单个对象的方法。最后提醒读者在.NET前后端交互时需要引入Newtonsoft.Json库,并添加适当的代码引用。

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

1.需求
允许客户在客户端对数据进行修改,以json字符串的形式传入后端并处理,插入数据库。

2解决方法
2.1前端构建json字符串

<script>
        function save_data() {
            var type = "Eva_Para_Info";
            var val = $('.td1');
            var year = $('select').eq(0).find('option:selected').text();
            var season = $('select').eq(1).find('option:selected').text();
            var j = [];
            //var row = {};
            for (var i = 0; i < val.length; i = i + 2) {
                var row = {};
                row.EVA_YEAR = year;
                row.EVA_SEASON = season;
                row.ROLE = val.eq(i).text();
                row.WEIGHT = val.eq(i + 1).text();
                j.push(row);
            }
            $.ajax({
                type: 'post',
                url: '../new/ajax/ajaxHander.aspx?type=' + type,
                data: JSON.stringify(j),
                dataType: 'json',
                headers: {
                    Accept: "application/json",
                    "Content-Type": "application/json"
                },
                processData: false,
                cache: false,
                success: function (reg) {
                    alert(reg);
                },
                error: function () {
                    alert("发生未知错误!");
                }
            });
        }
    </script>

2.2后端接受字符串并处理

private string _response = string.Empty;
private string _type = string.Empty;
private Test_BUL.sys_Common common = new Test_BUL.sys_Common();
    Save_Eva_Para_Info(Str)

public void Save_Eva_Para_Info(string Str) {
        //Eva_Para_Info data = JsonConvert.DeserializeObject<Eva_Para_Info>(Str);
        List<Eva_Para_Info> data = JsonConvert.DeserializeObject<List<Eva_Para_Info>>(Str);
        Test_Model.CPCSB MODEL = new Test_Model.CPCSB();
        Test_BUL.CPCSB bul = new Test_BUL.CPCSB();
        //你可以将下面的内容替换成你的处理代码。。。。。。
        foreach(Eva_Para_Info element in data)
        {
            MODEL.ID = System.Guid.NewGuid().ToString();
            MODEL.EVA_YEAR = element.EVA_YEAR;
            MODEL.EVA_SEASON = element.EVA_SEASON;
            MODEL.TCK_CATE = char.Parse(element.ROLE);
            MODEL.WEIGHT = element.WEIGHT;
            bul.Add(MODEL);
        }
        _response = "测评参数已更新!";
        Response.Write(_response);
    }

2.3后端实体的构建

    public class Eva_Para_Info
    {
        private int _EVA_YEAR;
        public int EVA_YEAR
        {
            get { return _EVA_YEAR; }
            set { _EVA_YEAR = value; }
        }

        private int _EVA_SEASON;
        public int EVA_SEASON
        {
            get { return _EVA_SEASON; }
            set { _EVA_SEASON = value; }
        }

        private string _ROLE;
        public string ROLE
        {
            get { return _ROLE; }
            set { _ROLE = value; }
        }

        private float _WEIGHT;
        public float WEIGHT
        {
            get { return _WEIGHT; }
            set { _WEIGHT = value; }
        }
    }

3.一些实际的问题和解决方案
3.1首先需要注意的是前端我打注释的 //var row = {}
我一开始是这样写的,但是在实际传送过程中,发现所以的实体都变成了最后一个,原因在于我对js的理解不够深入,插入j的只是row,而并没有与row的内容绑定。
3.2其次注意我在后台处理函数中的注释,如果你要处理一组数据,也就是json实体长这样[{},{},{}],就和我一样处理.但是,如果你要处理的其实只是一个json实体,就要用注释的代码将他转化为一个.net实体。
ps:这里没有交代十分清除,所有笔者再补充一点,就是说如果你只打算传递一个json实体,并不打算传递许多组数据,你其实只需要传递一个{},就可以。
4.一些注意事项
关于.net 前后端数据的交互,还有别的方式,因为笔者并没有亲测所以并没有提交,这里用的是Newtonsoft.Json,所以你需要在添加代码引用 using Newtonsoft.Json;
这是一个引用的.dll文件,我用的是4.0版本的类库,但是我的框架其实是4.5版本的,在这里交代一下,以供读者参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值