簡體   English   中英

將Java PageMethods“返回值”存儲到變量中

[英]Store Javascript PageMethods “return value” into a variable

我有一個示例代碼如下:

PageMethods.getServerTime(DateTimeFormat, OnRequestComplete, OnError);

它使用Javascript PageMethods調用C#函數getServerTime 但是,我注意到,如果使用以下代碼,我將能夠查看“返回值”。

    function OnRequestComplete(result) {
        alert(result);
    }

但是,如果我嘗試使用以下代碼:

var result = "";
result = PageMethods.getServerTime(DateTimeFormat, OnRequestComplete, OnError);

我將一無所獲。

根據我對互聯網的了解和研究,結果似乎可以得出以下結論:

Because the ajax call is async. It does not wait for the ajax call to complete.

因此,這是否意味着在全世界范圍內都沒有解決方法可以將“結果值”存儲到Javascript變量中

我只能放置一個alert()或使用<div>來顯示結果。 沒有機會將其存儲到Javascript變量中供以后使用嗎?

你是對的。 因為調用是異步的,所以在調用getServerTime時沒有值可分配給“結果”。 但是您已經使用OnRequestComplete擊中了釘子,因為可以確定它已被設置。 如果隨后需要對值進行某些操作(例如將其顯示給用戶),則必須在此方法中執行此操作,或者通過從內部調用另一個方法來執行此操作。

var result = "";
function OnRequestComplete(res) {
    result = res;
    DoSomethingWithResult();
}

function DoSomethingWithResult(){
    // Do your stuff here
}

退貨清單<object>從 C# 方法到 JavaScript PageMethods<div id="text_translate"><p> 我在 ASP.net ASPX 網頁上的 JavaScript 中從 PageMethods 調用返回對象列表時遇到問題。</p><p> 在 C# 方法中,如果我返回單個 object 它可以被 JavaScript 讀取,但是如果我返回一個對象列表,它會返回 500 錯誤。</p><p> 下面是一個返回單個 object 的示例,它可以工作。</p><p> C#</p><pre> [WebMethod] public static Project SingleObject() { Project obj = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); return obj; }</pre><p> JavaScript</p><pre> function getObject() { var object = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data.thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 現在,如果我更改 C# 方法以返回List&lt;Project&gt;而不是單個 object,它會在 chrome web 控制台中返回錯誤 500。</p><p> 下面的例子。</p><p> C#</p><pre> [WebMethod] public static List&lt;Project&gt; MulitpleObjects() { Project obj1 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj2 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj3 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); List&lt;Project&gt; objects = new List&lt;Project&gt;() { obj1, obj2, obj3 }; return objects; }</pre><p> JavaScript</p><pre> function getObjects() { var objects = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data[0].thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 如何更改它以能夠返回對象列表?</p></div></object>

[英]Return List<Object> from C# Method to JavaScript PageMethods

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 JavaScript中的PageMethods作為函數的返回 從Java中的PageMethods成功函數返回結果 退貨清單<object>從 C# 方法到 JavaScript PageMethods<div id="text_translate"><p> 我在 ASP.net ASPX 網頁上的 JavaScript 中從 PageMethods 調用返回對象列表時遇到問題。</p><p> 在 C# 方法中,如果我返回單個 object 它可以被 JavaScript 讀取,但是如果我返回一個對象列表,它會返回 500 錯誤。</p><p> 下面是一個返回單個 object 的示例,它可以工作。</p><p> C#</p><pre> [WebMethod] public static Project SingleObject() { Project obj = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); return obj; }</pre><p> JavaScript</p><pre> function getObject() { var object = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data.thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 現在,如果我更改 C# 方法以返回List&lt;Project&gt;而不是單個 object,它會在 chrome web 控制台中返回錯誤 500。</p><p> 下面的例子。</p><p> C#</p><pre> [WebMethod] public static List&lt;Project&gt; MulitpleObjects() { Project obj1 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj2 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj3 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); List&lt;Project&gt; objects = new List&lt;Project&gt;() { obj1, obj2, obj3 }; return objects; }</pre><p> JavaScript</p><pre> function getObjects() { var objects = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data[0].thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 如何更改它以能夠返回對象列表?</p></div></object> 如何從Jquery中的pagemethods獲取返回值..? PageMethods可以返回XML嗎? PageMethods.Method 未從 javascript 調用 ASP.NET中的javascript PageMethods-傳遞參數 PageMethods不起作用,因為方法未從javascript調用 首次執行代碼(JavaScript)時,將永久值存儲在變量中 無法將值存儲在變量中
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM