【问题标题】:Razor with javascript issue带有javascript问题的剃须刀
【发布时间】:2012-01-03 19:36:24
【问题描述】:

我创建了一个谷歌地图,我想在上面添加一个标记列表。但我有一些 razor-javascript 问题。
我的 cshtml 文件有一个模型 @model IEnumerable<MCN.Domain.Entities.Location>
我的模型加载很好,它包含所有值。
我在浏览器中调试 JS 代码,它进入 addMarker 方法,但在 var marker = new google.maps.Marker({ 部分停止。
在 Visual Studio 中,@foreach (var item in Model) { 上有绿色下划线,并带有消息:“条件编译已关闭” 这是JS部分:

<script type="text/javascript">
(function () {
        window.onload = function () {
            var mapDiv = document.getElementById('map');
            var latlng = new google.maps.LatLng('41.01146', '24.921659');
            var options = { styles: styleArray,
                center: latlng,
                zoom: 15,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControl: false                
            };
            var map = new google.maps.Map(mapDiv, options);

            @foreach (var item in Model) {                
                 @:addMarker(@item.Latitude, @item.Longitude, '@item.Name', '@item.DiscoveredBy');
             }           
        }
    })();

function addMarker(latitude, longitude, title, description)
{    
      var markerlatLng = new google.maps.LatLng(latitude, longitude);
      var title = 'test';
      var description = 'test';
      var contentString = 'test';

      var infowindow = new google.maps.InfoWindow({
          content: contentString
      });

      var marker = new google.maps.Marker({
          position: latLng,
          title: title,
          map: map,
          draggable: false
      });

      google.maps.event.addListener(marker, 'click', function () {
          infowindow.open(map, marker);
      });
}
</script>

JS 来自浏览器:

(function () {
        window.onload = function () {
            var mapDiv = document.getElementById('map');
            var latlng = new google.maps.LatLng('44.01146', '20.921659');
            var options = { styles: styleArray,
                center: latlng,
                zoom: 15,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControl: false                
            };
            var map = new google.maps.Map(mapDiv, options);

                 addMarker(20.921659, 44.01146, 'Svetozar markovic', 'user');
                 addMarker(20.92829, 44.010333, 'Glavna Stanica', 'user');



        }
    })();

【问题讨论】:

  • 可以查看生成的js的源码并贴出来吗?
  • 我怀疑我的地图定义。它在函数中定义。也许这个“addMarker()”函数看不到地图。我试图初始化地图功能但地图没有呈现:(
  • 你的javascript有问题吗?我不确定你的问题是什么。

标签: javascript asp.net-mvc asp.net-mvc-3 google-maps razor


【解决方案1】:

Visual Studio 不希望在 &lt;script&gt; 标记中看到 Razor 标记。没关系 - 希望他们将来会增加对此的支持。

重要的是您的浏览器中没有出现 javascript 错误。

【讨论】:

  • 实际上有一个错误,这有助于我找到它。我又向 addMarker() 函数“MAP”传递了一个参数,它起作用了。我讨厌错过这么少的东西。
【解决方案2】:

尝试用括号括住代码本身。这将消除您看到的错误。

示例:@Url.Action("MyAction", new { my_param = "my_value" }))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多