我正在构建一个ASP.NET MVC应用程序。它当前具有一个按钮,一旦单击该按钮,就会对控制器进行Ajax调用,如下所示:

function getData() {
    $.ajax({
        url: "/Home/GetData/",
        type: "POST",
        contentType: 'application/json',
        success: function (data){
            //need to do stuff here
        }
    });
}

控制器然后初始化一个类,将其转换为XML,然后将其转换为以下字典(这是有原因的):

public ActionResult GetData()
    {
        List<People> peeps = GetPeeps();

        string xml = ToXml(peeps);
        Dictionary<string,List<string>> stuff = ToDictionary(xml);

        return Json(stuff);
    }

我希望能够使用javascript在此数据客户端进行“处理”。

我必须使用服务器端的API返回XML数据。 我必须与客户端一起使用的API需要字符串数组。 (因此进行转换)

有没有办法使用我在客户端上方定义的字典? 有人可能会以此扩展(如果可能)以添加到ajax中,调用一个将字典内容打印到消息框的小方法? 只是给我一个关于如何在javascript中使用字典的起点。

提前致谢

===============>>#1 票数:1 已采纳

您可以按以下方式尝试ajax调用:

function getData() {
    $.ajax({
        url: "/Home/GetData/",
        type: "POST",
        contentType: 'application/json',
        success: function (data){
            console.log(data.key1); // value for key1
            //or to list all values
            for(var key in data){
                 console.log(data[key]);
            }
        }
    });
}

控制器(出于解释目的):

public ActionResult GetData()
{
    //List<People> peeps = GetPeeps();

    //string xml = ToXml(peeps);
    //Dictionary<string,List<string>> stuff = ToDictionary(xml);
    Dictionary<string,List<string>> stuff = new Dictionary<string, List<string>>
        { 
                {"key1", new List<string> {"a", "b", "c"}},
                {"key2", new List<string> {"d", "e", "f"}},
        };

    return Json(stuff);
}

我希望这足够清楚。 让我知道你怎样去 :)

  ask by brian4342 translate from so

未解决问题?本站智能推荐: