2014-12-03 111 views
0

我想在c#中編寫一個代碼,它從數據庫中檢索數據並將該數據傳遞給JavaScript(在一次循環中一次記錄)以便通過google map api進行處理。該javascript返回一個字符串列表,我用它來執行進一步處理並通過c#保存到數據庫。在Javascript和c之間來回通信#

到現在爲止,我意識到,即使我們在循環中寫入JavaScript函數,也只會調用一次。此外,我什至不知道我將如何返回從JavaScript的字符串列表,並在C#中使用。

我對此非常困惑。你能否建議一個好的和有效的方法?

謝謝。

這是我寫的代碼,但它沒有奏效。

foreach (LocationDataPacket d in l) 
      { 

       if (d.cellPhoneGPSData == current_cell) 
       { 
         lat1 = lat2; 
         long1 = long2; 

         lat2 = d.Lat; 
         long2 = d.Long; 
         ScriptManager.RegisterStartupScript(this, GetType(), "check", "check("+d.ID+");", true); 


       } 
       else 
       { 
        lat2 = d.Lat; 
        long2 = d.Long; 
        current_cell = d.cellPhoneGPSData; 
       } 
      } 
+0

什麼版本的.NET?您是否足夠了解「一個ASP.NET」的變化,如在Web API和/或SignalR的相同Web應用程序中運行WebForms(「ScriptManager」隱含WebForms)。後兩者相當有能力來回移動JSON內容。 – Richard 2014-12-03 13:20:44

+0

我正在使用4.5版本的.net。我見過SignalR,但還沒有嘗試過。到目前爲止,我試圖調用客戶端函數,但不幸的是,服務器端不等待客戶端,並且不用多次調用客戶端代碼就執行所有任務。 – 2014-12-03 13:32:49

+0

WebForms的整個模型試圖隱藏HTTP的底層無狀態。然而,要處理從服務器到客戶端的切換並返回,您必須撤消該抽象。 – Richard 2014-12-03 13:39:19

回答

1

我用Google搜索「訪問谷歌地圖從.NET客戶端API」,它使我的谷歌API客戶端庫.NET:

https://developers.google.com/api-client-library/dotnet/

我假定這將讓你的.NET程序(甚至可能沒有一個asp.net服務器上根據您的要求運行)成爲直接谷歌地圖API客戶端,所以你可以在本地做所有這些處理。

編輯:解決您的原始問題,爲了從客戶端獲取數據返回到您的Web服務器,客戶端需要回發信息。這個問題似乎覆蓋了很好:Send javascript variables to server-side ASP .NET。不過,我不建議根據你所說的你想完成的事情來嘗試這個。我會首先嚐試用於API的.NET客戶端庫。

0
<script runat="server"> 
foreach (LocationDataPacket d in l) 
{ 
    if (d.cellPhoneGPSData == current_cell) 
    { 
    lat1 = lat2; 
    long1 = long2; 

    lat2 = d.Lat; 
    long2 = d.Long; 
    ScriptManager.RegisterStartupScript(this, GetType(), "check", "check("+d.ID+");", true); 
    } 
    else 
    { 
    lat2 = d.Lat; 
    long2 = d.Long; 
    current_cell = d.cellPhoneGPSData; 
    } 
} 
</script> 

寫這些代碼放到head標籤..希望這將幫助ü。

在這個環節
+0

你的意思是說我應該將所有的c#代碼粘貼到我的aspx頁面的頭部?你確定它會在那之後等待客戶端代碼嗎?一旦我嘗試編寫JavaScript代碼內的C#代碼和所有在開始時執行的C#代碼而無需等待JavaScript完成 – 2014-12-03 13:47:41

+0

我提供了一個鏈接,其中您可以使用所有的JavaScript和C#通信方法實現這些 – 2014-12-09 06:43:49