我正在尝试在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;
}
}
答案 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
的转移价值的方法答案 3 :(得分:0)
我在使用Google Maps时遇到了类似的问题,并找到了使用PageMethods的解决方案,该方法可同时将所有数据返回到json中,然后将标记放在地图上。
在我的情况下,我进行的下一次收集数据的调用我清除了地图上的上一个点,并且每次调用都建立了下一个收集(这是因为用户可以做出另一个选择来更改所有标记),但是当然是如果可能的话,可以仅添加新标记。