在 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;
}
}
我在谷歌上搜索了"从.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形式返回所有数据,然后将标记放在地图上。
就我而言,我为收集数据而进行的下一次调用我清除了地图上的先前点,并在每次调用时都放置了下一个收集(这是因为用户可以进行另一个选择来更改所有标记),但当然,如果可能的话,可以添加新标记。