2011-10-11 90 views
-1

不太清楚我如何通過引用傳遞給AJAX JSON回調C#.NET。如果我有一個Web方法是這樣的:通過引用傳遞參數到AJAX JSON回調

[WebMethod] 
public static string MyMethod(Int32 x, Int32 y, ref Int32 z) 
{ 
    z = x + y; 
    return "Finished!"; 
} 

如何設置下面的調用來獲取z的改變後的值不還?

var jsonText = JSON.stringify({ x:1, y:1, z:0}); 
    $.ajax({ 
     type: "POST", 
     url: "myPage.aspx/MyMethod", 
     data: jsonText, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function() { alert("Success"); }, 
     failure: function() { alert("Failure"); } 
    }); 
+1

爲什麼你不能只返回z?因爲涉及序列化程序,所以我不認爲有辦法獲得對z的引用。 –

+1

你到底在想什麼? – TheVillageIdiot

+0

這只是一個愚蠢的例子,問我是否可以通過參考。實際上,我從存儲過程返回一組結果集。除了結果集之外,我還想從存儲過程中返回一個輸出參數值。所以我想你告訴我的是你可以輸出的唯一方法是返回值。 – Adeveloper123

回答

2

如果不返回它,您將無法獲得Z的值。發佈到WebMethod時,您會發送您的參數副本。同樣,當web方法返回數據時,它將返回一個副本。您的WebMethod不會使用與發佈給它的任何實體相同的內存(很可能是您的Web瀏覽器)。您如何期待遠程WebMethod在您的瀏覽器中更改內存中的值?

+0

這個怎麼樣? https://stackoverflow.com/questions/379648/net-webservices-and-out-ref-webmethod-arguments – user3454439