2011-06-29 22 views
0

我有一個長時間運行的任務和jquery ajax調用進度條的asp.net頁面。成功的時候,我想回傳一個int來取得進展,但是還有一些關於狀態的文本,比如我正在做什麼記錄。asp.net和jquery ajax成功返回多個值

我在下面有什麼我知道是不正確的,但我怎麼能得到更多的一個返回值?

什麼是'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); 
        } 
       } 
      }); 
    } 
+0

爲什麼不嘗試從Web服務中返回JSON?如果你這樣做,那麼你可以傳回整個對象 – MoarCodePlz

+0

你可以提供這樣的例子嗎?這是我第一次使用jquery ajax – user204588

+0

http://williamsportwebdeveloper.com/cgi/wp/?p=494這將告訴你如何將你的返回值序列化爲JSON,然後通過解析出來前端的Javascript去看看Dave Long的答案。 – MoarCodePlz

回答

1

您的網頁應返回一個JSON字符串,如:

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

,那麼你應該只需要返回的JSON字符串解析爲一個對象,例如:

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); 
       } 
      } 

希望有幫助, Dave

僅供參考:http://api.jquery.com/jQuery.parseJSON/