在Javascript和c之间来回通信#
我正试图用c#编写一个代码,从数据库中检索数据,并将数据传递给javascript(在一个循环中,一次一条记录),以便通过google map api进行处理。javascript返回一个字符串列表,我用它来执行进一步的处理,并通过c#保存到db 直到现在我才意识到javascript函数只会被调用一次,即使我们在循环中编写它。此外,我甚至不知道如何从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
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>