asp.net和jquery ajax在成功时返回多个值

时间:2011-06-29 13:59:43

标签: asp.net jquery

我有一个asp.net页面,其中包含一个长时间运行的任务和一个jquery ajax调用进度条。成功之后,我想传回一个int来取得进展,但也想传递一些状态文本,比如我正在使用的记录。

我知道下面的内容不对,但如何获得超过一个值?

'msg'获取两个值的正确语法是什么?

我认为是数组或类,但它不起作用。

function updateProgress() {            
       $.ajax({
                type: "POST",
                url: "Users.aspx/GetProgress",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: true,
                success: function(msg) {
                    $("#result").text = msg.Status;
                    var value = $("#progressbar").progressbar("option", "value");
                    if (value < 100) {
                        $("#progressbar").progressbar("value", msg.Progress);
                    }
                }
            });
    } 

1 个答案:

答案 0 :(得分:1)

您的页面应返回Json字符串,例如:

["Progress" : 1, "Status" : "Current Status"]

,那么你应该只需要将返回的json字符串解析为Object,例如:

 async: true,
 success: function(msg) {
     var obj = jQuery.parseJSON(msg);
     $("#result").text = obj.Status;
     var value = $("#progressbar").progressbar("option", "value");
          if (value < 100) {
                    $("#progressbar").progressbar("value", obj.Progress);
                }
            }

希望有所帮助, 戴夫

供参考:http://api.jquery.com/jQuery.parseJSON/