带有javascript问题的Razor
我创建了一个谷歌地图,我想在上面添加一个标记列表。但是我有一些问题。带有javascript问题的Razor,javascript,asp.net-mvc,asp.net-mvc-3,google-maps,razor,Javascript,Asp.net Mvc,Asp.net Mvc 3,Google Maps,Razor,我创建了一个谷歌地图,我想在上面添加一个标记列表。但是我有一些问题。 我的cshtml文件有一个模型@model IEnumerable 我的模型加载正常,它包含所有值。 我在浏览器中调试JS代码,它进入addMarker方法,但停在var marker=new google.maps.marker({part. 在VisualStudio中,@foreach(模型中的var项){上有绿色下划线,带有消息:“条件编译已关闭” 这是JS部分: <script type="text/javas
我的cshtml文件有一个模型
@model IEnumerable
我的模型加载正常,它包含所有值。
我在浏览器中调试JS代码,它进入addMarker方法,但停在
var marker=new google.maps.marker({
part.在VisualStudio中,
@foreach(模型中的var项){
上有绿色下划线,带有消息:“条件编译已关闭”
这是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>
Visual Studio不希望在
标记中看到Razor标记。没关系-希望他们将来会添加对该标记的支持
重要的是浏览器中没有javascript错误。尝试用括号括住代码本身。这将消除您看到的错误
示例:
@Url.Action(“MyAction”,new{my_param=“my_value”}))
您能查看生成的js的源代码并发布吗?我怀疑是在我的映射定义中。它是在函数中定义的。可能这个“addMarker()”函数看不到映射。我试图在函数外初始化映射,但映射没有呈现:(你的javascript有问题吗?我不确定你的问题是什么。实际上有一个错误,这有助于我找到它。我向addMarker()函数“MAP”传递了一个参数,它就工作了。我讨厌错过这么一点东西。
(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');
}
})();