【发布时间】:2018-03-28 03:21:49
【问题描述】:
所以我试图从控制器列表中传递纬度和经度值以查看脚本(谷歌地图)。这段代码的目的是根据控制器的经纬度列表在谷歌地图上创建多个标记。
如何将列表从控制器实际传递到谷歌地图的查看脚本?
这是我的一些代码:
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>
【问题讨论】:
-
如果我理解正确,您应该使用模型。
-
您可以对控制器操作进行 ajax 调用,并使用直接映射到 c# 模型的 JSON 来回传递值。
-
您有一个包含属性
double Longitude和double Latitude的模型,您将该模型的集合传递给视图并使用var data = @Html.Raw(Json.Encode(Model))将其转换为javascript 数组
标签: c# asp.net asp.net-mvc