$(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);
}
}
);
}
);
});
我使用该脚本对页面changemap.cshtml
进行ajax调用,该页面执行以下操作
@{
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 id=@0";
var row=db.QuerySingle(dbCmd,countryId);
if(null!=row)
{
Json.Write(row,Response.Output);
}
}
}
}
即将查询数据从json格式的数据库返回给客户端。 Initialize函数定义为
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 :(得分:0)
我认为
var responseURL = "~/changemap?id=" + id;
应该是
var responseURL = '@(Url.Content("~/changemap")+"?id=")' + id;
答案 1 :(得分:0)
尝试以下
success(data){
initialize(data.d.Latt, data.d.Longt);
}
有关使用d的原因的更多参考,请查看以下链接
http://encosia.com/never-worry-about-asp-net-ajaxs-d-again/