【问题标题】:How can I call Javascript function from razor?如何从 razor 调用 Javascript 函数?
【发布时间】:2018-01-25 09:49:11
【问题描述】:

我正在尝试在我的一个屏幕上使用谷歌地图。我可以在 window.onload 期间加载 Google 地图。该脚本在我的 site.js 文件中。然后我想为每辆自行车显示所有最后的位置(如果有的话)。我一直在搜索网络和这个论坛,但我能找到一个可以帮助我前进的答案。根据我所阅读的内容,这应该可以工作,但是当我使用断点时,永远不会调用函数 ShowLocation。任何帮助表示赞赏

@model AccountViewModel

<script type="text/javascript">
function ShowLocation(lt, lng) {
    var googleLatLong = new google.maps.LatLng(lt, lng);
    var markerOptions = {
        position: googleLatLong,
        map: map,
        clickable: true
    };

    var marker = new google.maps.Marker(markerOptions);

}

</script>

<div>
    <h2> bicycle Locations </h2>
</div>


<div id="map" class="col-md-8 col-sm-6">
Map Loading....
</div>


 @foreach (var bicycle in Model.Bicycles)
  {
     int i = 0;
     if (bicycle.LastLocationID != 0)
     {
         var location = Model.LastKnowLocations.FirstOrDefault(l => 
         l.ID == bicycle.LastLocationID);
         var lattitude = location.Latitude;
         var longitude = location.Longitude;

         <script type="text/javascript">
              ShowLocation(lattitude, longitude)
         </script>

    }
}

【问题讨论】:

  • 当你调用函数时删除“function”关键字。 “function ShowLocation(lattitude, longitude)”应该是“ShowLocation(lattitude, longitude);”
  • 嗨,谢谢,这是一个错误。不知道它怎么会在那里。但是,它并不能解决问题。跳过java代码。
  • 我发现了问题。由于某种原因,当使用 google map API 中的函数定位当前用户位置时 navigator.geolocation.getCurrentPosition(displayLocation, displayError);它具有忽略javascript的效果。 displayLocation 函数不调用它。因此,尝试在稍后阶段添加被忽略的 javascript 标记。因此,当我不使用该功能时,代码有效。我无法解释为什么在另一种情况下会忽略 java 脚本。

标签: javascript razor asp.net-core-mvc


【解决方案1】:

你应该从 $(document).ready 调用 showlocation 函数。 在 razor 中循环只会渲染脚本部分。

【讨论】:

  • 嗨,试过了,但没有成功 - 代码块继续被跳过。
猜你喜欢
  • 1970-01-01
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
相关资源
最近更新 更多