2012-09-23 65 views
0
$(document).ready(function() 
    { 
     $(".viewmap").click(function() 
     { 
      var id = $(this).attr("id"); 
      var responseURL = "~/changemap?id=" + id; 
      //alert(responseURL); 
      $.ajax(
      { 
       url: responseURL, 
       dataType: "json", 
       type:"GET", 
       success: function (dt) 
       { 
        initialize(dt.Latt, dt.Longt); 
       } 
      } 
      ); 
     } 
     ); 
    }); 

我使用腳本來使一個AJAX調用頁面changemap.cshtml其執行以下操作我需要getJson嗎?

@{ 

    if(!IsPost) 
    { 
     if(!Request.QueryString["id"].IsEmpty()&&Request.QueryString["id"].IsInt()) 
     { 
      var countryId=Request.QueryString["id"]; 
      var db=Database.Open("GoogleMapView"); 
      var dbCmd="SELECT * FROM places WHERE [email protected]"; 
      var row=db.QuerySingle(dbCmd,countryId); 
      if(null!=row) 
      { 
       Json.Write(row,Response.Output); 
      } 
     } 
    } 
} 

也就是從數據庫中以JSON格式返回查詢的數據到客戶端。初始化函數定義爲

function initialize(lat,lng) 
      { 
       var mapOptions = { 
        center: new google.maps.LatLng(lat,lng),zoom: 8,mapTypeId: google.maps.MapTypeId.ROADMAP 
       }; 
       var map = new google.maps.Map(document.getElementById("gmap"),mapOptions); 
      } 

但是當我點擊viewmap類的div標籤,沒有任何反應。我想我錯過了一些腳本讓我的應用程序正常工作。

我只嘗試實現一個簡單的谷歌地圖視圖,其中一旦用戶點擊地名作爲超級鏈接將重新加載與之匹配的地圖。

+0

成功函數中'dt'的值是多少? –

+0

dt包含從數據庫表中讀取的json格式的數據 –

回答

0

我覺得

var responseURL = "~/changemap?id=" + id; 

應該

var responseURL = '@(Url.Content("~/changemap")+"?id=")' + id; 
+0

儘管您的回覆沒有解決我的問題,但它確實提供了我現在解決的提示。萬分感謝。 –

+0

@PeterMannings - 然後請添加一個自我回答這個問題。爲未來的訪客。 –

0

嘗試THR以下

  success(data){ 

        initialize(data.d.Latt, data.d.Longt); 



       } 

更多的參考,如爲什麼使用d查看以下鏈接

 http://encosia.com/never-worry-about-asp-net-ajaxs-d-again/ 
+0

謝謝。我剛剛提出了一個新問題http://stackoverflow.com/questions/12550604/how-can-i-slide-google-map –