为了账号安全,请及时绑定邮箱和手机立即绑定

使用 jquery Json 返回值迭代 AC# 字典

使用 jquery Json 返回值迭代 AC# 字典

C#
梦里花落0921 2022-12-24 12:28:50
我有一个包含字符串的字典:例如键:“X”值:“Y”这是通过我的控制器中的 JsonResult 返回的: public JsonResult GetMachineSettings(string machine)    {        DataTable _dt = getmysettings_SqlCall;        TaskSetting _mr= new TaskSetting(); //simply a dictionary of string,string        foreach (DataRow _row in _dt.Rows)        {            _mr.Settings.Add( _row.Field<string>("SettingKey"),             _row.Field<string>("SettingValue"));        }        return Json(_mr);    }这已被调用并通过 jquery Ajax 调用返回:<script type="text/javascript">$('#machines').change(function () {   $(this).parents('form').submit();    $.ajax({        type: 'POST',        url: '@Url.Action("GetMachineSettings")', // we are calling json method        dataType: 'json',        data: {            _items: $("#machines").val() },        success: function(_items) {            var a=JSON.parse(_items);            $.each(a.Record, function (i, record) {                    alert(record.key + " " + record.value);            });        },        error: function(ex) {            alert('Failed to retrieve Tasks.' + ex);        }    });    return false;});但它失败了,并以 Json 格式发布了一个包含我所有数据的字符串,因为 foreach 循环中存在空引用异常:{“设置”:{“X”:“Y”}}我想做的是显示一个简单的警报(此时),它将显示键/值对(更好的是,每个键的警报,然后是值)。但我不确定这是如何实现的。
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我试图重现您的代码,将 AJAX 调用更改为此


删除var a=JSON.parse(_items);因为 _items 已经是 JSON 对象


在方法中更改访问(键,记录)的each 方式。


请注意,您的 财产Settings不在.TaskSettingRecord


 $.ajax({

        type: 'POST',

        url: '@Url.Action("GetMachineSettings")', // we are calling json method


        dataType: 'json',


        data: {

            _items: $("#machines").val()

        },

        success: function (_items) {

            //var a = JSON.parse(_items);

            $.each(_items.Settings, function (key, record) {

                console.log(key + " " + record);

            });

        },

        error: function (ex) {

            alert('Failed to retrieve Tasks.' + ex);

        }

    });


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信