将jsondata从Ext.data.Store转换为列表对象

本文关键字:转换 列表 对象 Store data jsondata Ext | 更新日期: 2023-09-27 18:19:24

我有一个用户创建的按钮从存储发送数据到服务器端c#代码。

    // send data through link
    function valideit() {
        var jsonData = Ext.encode(Ext.pluck(store.data.items, 'data'));
        Ext.Ajax.request({
            url: '/Contact/Validate', params: { data: jsonData },
            success: function (result, request) {
                Ext.MessageBox.alert('Success', 'Data return from the server: ' + result.responseText);
            },
            failure: function ( result, request) { 
                Ext.MessageBox.alert('Failed', 'Successfully posted form: '+result.date); 
            } 
        });
    }

和c#:

    [HttpPost]
    public JsonResult Validate(object data)
    {
        return Json(new
        {
            success = "This worked", failure = "Doesnt work"
        },JsonRequestBehavior.AllowGet);
    }

这是我从"data"中得到的数据


data = % 5 b % 7 b % 3 22% c3 % 9 atgefandikennitala % 22% % 224911069990 c3 % 22% 2 c % 22% % 9 atgefandiheiti % 3 22% % 22 landsbanki % 20绝对% 20返回% 20道箍% 22% 2 c % 22 rekstrarf % C3%A9lagKennitala % 3 22% % 227005942549 % 22% 2 c % 22 rekstrarf % C3%A9lagNafn % 3 22% % 22 landsvaki % 20 hf. % 22% 2 c % 22 isin % 3 22% % 22 is0000016913 % 22% 2 c % 22盟% C3%B0kenni % 3 22% % 22 lars % 22% 2 c % 22 tegundheiti % 3 22% % 22 hlutdeildarsk % C3%ADrteinioghlutir % 22% 2 c % 22 skr % C3%A1%C3%B0heiti 93 c3 % % 3 22% % 22% skr % C3%A1%C3%B0 % 22% 2 c % 22我% C3%B0all % C3%ADft % C3%ADmi % 3 % 220% 22% 22% 2 c % 22 fj % C3%B6ldi %3 a2101 % 2 c % 22 gengi % 22% 22% 3 a0.860383 % 2 c % 22 gjaldmi % C3%B0ill % 3 22% % 22美元% 22% 2 c % 22 gengigjaldmi % C3%B0ils % 3 22% % 22117.59% 22% 2 c % 22 b % C3%B3kf % C3%A6rtVer % C3%B0 % 3 22% % 22% 2 c % 22 athugasemd % 22% 22212.53% 3 % 22% 22% 7 d % 2 c % 7 b % 3 22% c3 % 9 atgefandikennitala % 22% % 226105109810 c3 % 22% 2 c % 22% % 9 atgefandiheiti % 3 22% % 22 lfesti % 20 borgart % C3%BAn % 22% 2 c % 22 rekstrarf % C3%A9lagKennitala % 3 % 22% 22% 22% 2 c % 22 rekstrarf % C3%A9lagNafn % 3 22% % 22% 2 c % 22 isin % 22% 22% 3 % 22 is0000020105 % 22% 2 c % 22盟% C3%B0kenni % 3 22% % 22 lfest1 % 2010% 201% 22% 2 c % 22 tegundheiti % 3 22% %96 c3 % 22% nnurver % C3%B0br % C3%A9f % 22% 2 c % 22 skr % C3%A1%C3%B0heiti % 3 22% % 22 skr % C3%A1%C3%B0 % 22% 2 c % 22我% C3%B0all % C3%ADft % C3%ADmi % 3 22% % 2212.32% 22% 2 c % 22 fj % C3%B6ldi % 3 a984567 % 2 c % 22 gengi % 22% 22% 3 a1.06348 % 2 c % 22 gjaldmi % C3%B0ill % 3 22% % 22 isk % 22% 2 c % 22 gengigjaldmi % C3%B0ils % 3 22% % 221% 22% 2 c % 22 b % C3%B3kf % C3%A6rtVer % C3%B0 % 3 22% % 22% 2 c % 22 athugasemd % 22% 221047.07% 3 % 22% 22% 7 d % 2 c % 7 b % 3 22% c3 % 9 atgefandikennitala % 22% % 224603069490 c3 % 22% 2 c % 22% % 9 atgefandiheiti % 3 22% % 22土地


那么我怎么能得到这个数据在一个可用的格式?

谢谢

将jsondata从Ext.data.Store转换为列表对象

你好,在得到Jason的帮助后,我想回答我自己的问题。

在客户端,你有数据在STORE.data.items(在我的情况下ExtJS网格)

这是按下按钮时的动作:

function valideit() {
    var jsonData = Ext.encode(Ext.pluck(store.data.items, 'data'));
    Ext.Ajax.request({
        url: '/Contact/Validate', params: { data: jsonData },
        success: function (result, request) {
            Ext.MessageBox.alert('Success', 'Data return from the server: ' + result.responseText);
        },
        failure: function (result, request) {
            Ext.MessageBox.alert('Failed', 'Successfully posted form: ' + result.date);
        }
    });
}

服务器端:

[HttpPost]
            public JsonResult Validate(string data)
            {
                var response = HttpUtility.UrlDecode(data);

                List<Investments> myDeserializedObjList = (List<Investments>)Newtonsoft.Json.JsonConvert.DeserializeObject(data, typeof(List<Investments>));

                return Json(new
                {
                    success = "This worked!"
                },JsonRequestBehavior.AllowGet);
            }

使用System.Web.HttpUtility.UrlDecode将数据更改为未转义的字符串,然后使用Json。NET库将JSON字符串反序列化为c#对象

相关文章: