【发布时间】: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