Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript和c之间来回通信#_Javascript_C#_Asp.net_Web Services_Google Maps Api 3 - Fatal编程技术网

在Javascript和c之间来回通信#

在Javascript和c之间来回通信#,javascript,c#,asp.net,web-services,google-maps-api-3,Javascript,C#,Asp.net,Web Services,Google Maps Api 3,我正试图用c#编写一个代码,从数据库中检索数据,并将数据传递给javascript(在一个循环中,一次一条记录),以便通过google map api进行处理。javascript返回一个字符串列表,我用它来执行进一步的处理,并通过c#保存到db 直到现在我才意识到javascript函数只会被调用一次,即使我们在循环中编写它。此外,我甚至不知道如何从javascript返回字符串列表并在c#中使用它 我被这件事难住了。你能推荐一个好的有效的方法吗 多谢各位 下面是我编写的代码,但它不起作用 f

我正试图用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;
                }
            }

foreach(l中的位置数据包d)
{
if(d.cellPhoneGPSData==当前_单元)
{
lat1=lat2;
long1=long2;
lat2=d.Lat;
long2=d.Long;
RegisterStartupScript(this,GetType(),“check”,“check(“+d.ID+”);”,true);
}
其他的
{
lat2=d.Lat;
long2=d.Long;
当前_cell=d.cellPhoneGPSData;
}
}

将这些代码写入head标记。。希望这将对你有所帮助。

在这个链接中,你可以找到许多方法将值从c#返回到javascript

我在谷歌上搜索了“从.net客户端访问google maps api”,这让我找到了.net的google api客户端库:

我假设这将允许您的.net程序(甚至可能不必根据您的要求在asp.net服务器上运行)成为直接的google map API客户端,以便您可以在本地执行所有这些处理


编辑:解决您的原始问题,为了将数据从客户端返回到web服务器,客户端需要发回信息。这个问题似乎很好地涵盖了这一点:。然而,我不建议基于你所说的你想要完成的事情来尝试这个。我会首先尝试使用.NET客户端库获取API。

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


在我的例子中,下一次我打电话收集数据时,我清除了地图上的前几点,并在每次通话中进行下一次收集(这是因为用户可以进行另一次选择,从而更改所有标记),但当然,如果可能的话,也可以添加新的标记

什么版本的.NET?对于“一个ASP.NET”更改,例如在与web API和/或Signal相同的web应用程序中运行WebForms(
ScriptManager
意味着WebForms),您是否已掌握足够的最新信息。后两者都非常能够来回转换JSON内容。我使用的是.net的4.5版本。我见过信号机,但还没试过。到目前为止,我一直在尝试调用客户机函数,但不幸的是,服务器端没有等待客户机并执行所有任务,而不多次调用客户机端代码WebForms的整个模型试图隐藏HTTP的潜在无状态。然而,要使处理从服务器切换到客户端,然后再切换到客户端,您必须撤消该抽象。C#执行发生在服务器上。Javascript在客户端上执行。你确定客户需要参与其中吗?听起来你是在试图执行一个纯粹基于服务器的过程:1)从服务器本地数据库获取数据1,2)使用数据1从Internet源获取数据2,3)将数据2保存到服务器本地数据库。@伪编码器我认为你正确理解了这个问题。GoogleMapAPI是基于javascript的,因此我正在使用它的Api获取一些与数据库中的数据相关的数据。我不认为我有任何其他选择,但要做我正在做的事你是说我应该把我所有的c#代码粘贴到我的aspx页面的头部?您确定之后它会等待客户端代码吗?有一次,我试着在javascript代码中编写c代码,所有的c代码都是在一开始就执行的,不需要等待javascript完成,我提供了一个链接,在这个链接中,你可以使用所有的javascript和c通信方法来实现这些
<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>