在 Javascript 和 c# 之间来回通信

本文关键字:通信 之间 Javascript | 更新日期: 2023-09-27 18:33:00

我正在尝试用c#编写一个代码,该代码从数据库中检索数据并将该数据传递给javascript(一次一条记录的循环中),以便通过谷歌地图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;
                }
            }

在 Javascript 和 c# 之间来回通信

我在谷歌上搜索了"从.NET client访问Google Maps API",它把我带到了.NET的Google APIs客户端库:

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

我假设这将允许你的.net程序(甚至可能不必在 asp.net 服务器上运行,这取决于你的要求)成为一个直接的谷歌地图API客户端,这样你就可以在本地完成所有这些处理。

编辑:解决您的原始问题,为了将数据从客户端获取回您的Web服务器,客户端需要回发信息。 这个问题似乎很好地涵盖了这个问题:将javascript变量发送到服务器端ASP .NET。 但是,我不建议根据您所说的要完成的内容来尝试此操作。 我会先尝试 API 的 .NET 客户端库。

<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 Tag.. 希望这对您有所帮助。

在此

链接中,您可以找到许多将值从返回 C# 传输到 JavaScript 的方法

C# 到 JavaScript 值传输方法

我在谷歌地图上遇到了类似的问题,并在使用PageMethods中找到了一个解决方案,该解决方案同时以json形式返回所有数据,然后将标记放在地图上。

就我而言,我

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