2012-09-23 155 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 –