gpt4 book ai didi

javascript - 如何从 C# 代码后面调用 2 个参数的 js 函数? (ASP.NET)

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:45 25 4
gpt4 key购买 nike

我有一个创建标记函数是 JS,我想从 C# 调用它:

 function createMarker(position, information) {

var marker = new google.maps.Marker({
position: position,
map: map

});

google.maps.event.addListener(marker, "click", function () {

infowindow = new google.maps.InfoWindow({ content: information });
if (prev_infowindow) {
prev_infowindow.close();
}

prev_infowindow = infowindow;
infowindow.open(map, this);


});
google.maps.event.addListener(map, "click", function () { //supprime l'infobulle affichée au clic sur la map

infowindow.close();

});
}

一开始它只有 1 个参数,我可以通过 C# 调用它,但现在它有 2 个参数,我很难让它工作。我总是遇到“)”或“:”的语法错误。

  foreach (XmlElement elementNode in parentNode)
{
if (elementNode.GetAttribute("latitude") != String.Empty && elementNode.GetAttribute("longitude") != String.Empty)
{
lat = double.Parse(elementNode.GetAttribute("latitude"), CultureInfo.InvariantCulture)/100000;
lng = double.Parse(elementNode.GetAttribute("longitude"), CultureInfo.InvariantCulture) / 100000;
latStr = ""+lat;
lngStr = ""+lng;
latStr = latStr.Replace(',', '.');
lngStr = lngStr.Replace(',', '.');



position = "{lat: " + latStr + ", lng:" + lngStr + "}";

if (DistanceTo(latitude, longitude, lat, lng) < distance)
{
cpt++;
infoStations = "Some random string" ;
jsFunc = "createMarker(" + position + "," + infoStations+ ")";
coordMarkers.Add(new List<double> { lat, lng });

ScriptManager.RegisterClientScriptBlock(this, GetType(), "script"+cpt, "$(function () {" + jsFunc+"; });", true);
}

}

}

是否有可能是变量位置中的“,”有问题?因为如果我只传递 1 个参数,它会很好地创建带有空信息窗口的标记,但如果有 2 个参数,则标记或信息窗口都不会显示。

这是工作代码:

 jsFunc = "createMarker(" + position + ")";
ScriptManager.RegisterClientScriptBlock(this, GetType(), "script"+cpt, "$(function () {" + jsFunc+"; });", true);

最佳答案

将字符串作为参数传递时,您需要对 JavaScript 字符串文字使用正确的语法,即用双引号将其括起来。

使用 HttpUtility.JavaScriptStringEncode 方法从 C# 中的字符串生成有效的 JavaScript 字符串文字。

jsFunc = "createMarker(" + position + "," + HttpUtility.JavaScriptStringEncode(infoStations, true) +  ")";

关于javascript - 如何从 C# 代码后面调用 2 个参数的 js 函数? (ASP.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43754942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com