所以我试图将控制器列表中的纬度和经度值传递给查看脚本(谷歌地图)。此代码的目的是根据控制器的纬度和经度列表在谷歌地图上创建多个标记。
如何实际从控制器传递列表以查看谷歌地图的脚本?
以下是我的一些代码:
index.cshtml
<script>
@foreach (float list in ViewBag.latitude_list){
@foreach (float list2 in ViewBag.longitude_list){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(@list, @list2),
map: map,
title: 'Hello World!'
});
}
}
</script>
controller.cs
//add latitude and longitude to list
latitude_list.Add(entity.vehicle.position.latitude);
longitude_list.Add(entity.vehicle.position.longitude);
ViewData["latitude_list"] = latitude_list;
ViewData["longitude_list"] = longitude_list;
return View();
我仍然很陌生,任何帮助都将不胜感激。
更新
这是我用C#值填充javascript google map lat和lng的方法。 有模特,
homecontroller.cs
latLngList.Add(new LatLng() {Lat = entity.vehicle.position.latitude, Lng = entity.vehicle.position.longitude})
和
index.cshtml
<script>
var markersArray = [];
@foreach (var item in ViewBag.latLngList){
<text>
markersArray.push(new google.maps.Marker({
draggable: true,
position: new google.maps.LatLng('@item.Lat', '@item.Lng', false),
title: 'Whatever title',
map: map
}));
</text>
}
</script>
答案 0 :(得分:0)
如果我理解你的问题,答案就是:
LatLng.cs
public class LatLng
{
public float Lat {get;set;}
public float Lng {get;set;
}
controller.cs
//add latitude and longitude to list
public class Controller
{
List<LatLng> latLngList = new List<LatLng>();
latLngList.Add(new {entity.vehicle.position.latitude,
entity.vehicle.position.longitude} );
ViewData["latLng_List"] = latLngList;
return View();
}
index.cshtml
<script>
@foreach (var item in ViewData["latLng_List"] as IList<>){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(item.Lat, item.Lng),
map: map,
title: 'Hello World!'
});
}
</script>