如何让asp.net mvc控制器与谷歌地图api交谈 - 动态添加标记

时间:2014-10-07 16:35:59

标签: c# asp.net-mvc google-maps

我正在使用Google Maps API。我在我的页面上显示地图,我可以手动添加标记,一切正常。

现在我需要从mvc构建一个标记列表,并找出如何通过asp.net MVC将其传递回地图。我需要的所有标记列表都包含在下面显示的dtDealer_List中。

foreach (DataRow row in dtDealer_List.Rows)
      {
          dealer_list dl = new dealer_list();
          dl.address = row["address"].ToString();
          .......
          lstDealer_List.Add(dl);
      }

我不确定如何将此列表传递回javascript函数。

function init_map(map_canvas_id, lat, lng, zoomLevel) {
            var myLatLng = new google.maps.LatLng(lat, lng);

            var options = {
                zoom: zoomLevel,
                center: myLatLng,
                mapTypeId: google.maps.MapTypeId.HYBRID
            };

            var map_canvas = document.getElementById(map_canvas_id);

            var map = new google.maps.Map(map_canvas, options);
        }

我是否需要将dtDealer_List拉出到ajax调用中?

1 个答案:

答案 0 :(得分:1)

在页面顶部添加一个小脚本,以便从列表中设置javascript数组:

@model List<string>

<script>
    var addresses = [];
    @foreach (var address in Model)
    {
        <text>addresses.push('@address')</text>
    }
    console.log(addresses);
</script>

然后您应该能够访问您需要的全局addresses数组