2016-04-10 85 views
0

我想填充一個谷歌地圖與幾個地理點和相關的信息窗口,所有存儲在數據庫中。我的代碼編譯沒有錯誤,但infowindow內容不能正常工作。我正在C#和JavaScript工作。如何從數據庫中填充Google地圖信息框?

此代碼用字符串「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

我不認爲你需要「@」在「行」的前面,因爲你已經是一個代碼塊。 – BoltBait

+0

謝謝,但拿出@s做了新的錯誤:( –

+0

嘗試使用引號標記@ row.Description。 – BoltBait

回答

0

更改行:

marker.content = "some words"; 

有:

marker.content = "@row.Description"; 
0

嘗試把一個@ 之前你foreach (var row in db.Query(query)) {代碼作爲這個.NET tutorial規定。它應該是:

@foreach(var row in db.Query(selectQueryString)){

.NET數據傳遞給JavaScript提到here的其他方式。

相關問題