【问题标题】:How to get asp.net mvc controller to talk with google maps api - Adding markers dynamically如何让 asp.net mvc 控制器与谷歌地图 api 对话 - 动态添加标记
【发布时间】:2014-10-07 16:35:59
【问题描述】:

我正在使用 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 调用中?

【问题讨论】:

  • 您在页面加载时准备好dtDealer_List 了吗?如果是这样,您可以将其用作模型或将其发送到 ViewBag 中。如果没有,则需要使用 AJAX
  • dtDealer_List 作为模型传递到页面。如何使用它来填充 javascript/jQuery 函数调用? @Jonesy
  • @Jonesy 我会玩弄它发现了一些关于将模型传递给 javascript 的帖子。感谢您的想法。
  • 我添加了一个解决方案 - 让我记住了 razor/javascript 语法

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


【解决方案1】:

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

@model List<string>

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

那么你应该可以访问你需要的全局addresses数组

【讨论】:

  • 我会解决这个问题,稍后再报告,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 2019-09-23
  • 1970-01-01
  • 2013-01-03
相关资源
最近更新 更多