我正在尝试使用几个地理位置和相关信息窗口填充谷歌地图,所有这些都存储在数据库中。我的代码编译没有错误,但infowindow内容不能正常工作。我在c#和javascript工作。
此代码使用字符串“some words”填充每个信息窗口。我也可以通过用@ row.Lat和/或@ row.Lng替换“some words”来使其工作,并使用数据库中的正确数字填充信息窗口。但是,当我输入@ row.Description(当我想要的内容是行的名称)时,地图不会加载,但我没有收到任何错误消息。如果我把@ row.randomStuff(一个不存在的行)然后我得到一个错误,所以我知道正在读取@ row.Description但不理解。
@{
var db = Database.Open("ClownDB");
var query = "SELECT * FROM Point";
foreach (var row in db.Query(query)) {
<text>
var markerPosition = new google.maps.LatLng(@row.Lat, @row.Lng);
var marker = new google.maps.Marker({
position: markerPosition,
map: ClownMap,
clickable:true});
marker.content = "some words";
var InfoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker, 'click', function({
InfoWindow.setContent(this.content);
InfoWindow.open(ClownMap, this);
});
</text>
}
}
答案 0 :(得分:0)
尝试放@
在此.NET tutorial中指定的foreach (var row in db.Query(query)) {
代码之前。它应该是:
@foreach(var row in db.Query(selectQueryString)){
提到将.NET数据传递给javascript的其他方法here。
答案 1 :(得分:0)
更改行:
marker.content = "some words";
使用:
marker.content = "@row.Description";