在Javascript和c#之间来回通信

时间:2014-12-03 13:13:17

标签: javascript c# asp.net web-services google-maps-api-3

我正在尝试在c#中编写代码,该代码从数据库中检索数据并将该数据传递给javascript(一次循环一个循环内),以便通过google map api进行处理。该javascript返回一个字符串列表,我用它来进行进一步处理并通过c#保存到db。

直到现在我才意识到,即使我们在循环中编写它,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;
                }
            }

4 个答案:

答案 0 :(得分:1)

我用谷歌搜索“从.net客户端访问谷歌地图api”,它引导我进入.NET API客户端库:

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

我假设这将允许您的.net程序(可能甚至不必在asp.net服务器上运行,具体取决于您的要求)成为直接谷歌地图API客户端,以便您可以在本地进行所有这些处理。 / p>

编辑:解决原始问题,为了将数据从客户端返回到您的Web服务器,客户端需要回发信息。这个问题似乎很好地涵盖了这一点:Send javascript variables to server-side ASP .NET。但是我不建议根据你说你想要完成的事情来尝试这个。我首先尝试使用.NET客户端库。

答案 1 :(得分: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标签..希望这会对你有帮助。

答案 2 :(得分:0)

在此链接中,您可以找到许多从c#转换为javascript

的转移价值的方法

C# to javascript value transfer methods

答案 3 :(得分:0)

我在使用Google Maps时遇到了类似的问题,并找到了使用PageMethods的解决方案,该方法可同时将所有数据返回到json中,然后将标记放在地图上。

在我的情况下,我进行的下一次收集数据的调用我清除了地图上的上一个点,并且每次调用都建立了下一个收集(这是因为用户可以做出另一个选择来更改所有标记),但是当然是如果可能的话,可以仅添加新标记。