gpt4 book ai didi

c# - 在 MVC 中调用 javascript 函数

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:48 25 4
gpt4 key购买 nike

我在 View 的头部有以下 javascript 函数

function addMarker(title, description, lon,lat, iconT) {
var icon = new OpenLayers.Icon(iconT);
var markerslayer = new OpenLayers.Layer.Markers("Markers");
var lonlat = new OpenLayers.LonLat(lon, lat);
lonlat = lonlat.transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
var markerToAdd = new OpenLayers.Marker(lonlat, icon);
markerToAdd.icon.imageDiv.title = title + " - " + description;
markerslayer.addMarker(markerToAdd);
map.addLayer(markerslayer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
}

我正在尝试使用以下任一方式调用上面的函数:

@if (Model != null)
{
foreach (var item in Model)
{
<script type="text/javascript">
addMarker(@item.Title, @item.Description, @item.Longitude, @item.Latiude, @item.Icon);
</script>
}
}

或者

 public ActionResult Index()
{
List<CommonLayer.Map> userMaps = new BL.Map().getUserMaps(User.Identity.Name);
foreach (var item in userMaps)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "MyFunction()", true);
}

return View(userMaps);
}

我做错了什么? View 代码未调用 addMarket 函数,而无法从 foreach 内部调用 c# 代码,因为它不是静态的

最佳答案

试试这个:

@if (Model != null)
{
foreach (var item in Model)
{
<script type="text/javascript">
addMarker('@item.Title', '@item.Description', @item.Longitude, @item.Latiude, @item.Icon);
</script>
}
}

此外,这一行的 icon 拼写错误(必须是 iconT 而不是 icon:

var markerToAdd = new OpenLayers.Marker(lonlat, icon);

关于c# - 在 MVC 中调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23540086/

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