0

我正在使用此调用将 Bing 地图添加到页面中:

var geocodeRequest = "http://dev.virtualearth.net/REST/v1/Locations?query=" + encodeURI(AddressString) + "&output=json&jsonp=GeocodeCallback&key=" + credentials;

当它直接在页面 javaScript 标记中使用时,它工作正常。我想在不同的页面中重用它,所以我试图提取一个局部视图并使用 Ajax 调用在不同的页面中按需调用它。

这是控制器

 public ActionResult ShowMap(string address)        
{            
  MapHandlerModel model = new TheList20Site.MapHandlerModel { Title = "Address", Address = address, OriginalHeight = 400, OriginalWidth = 500, SmallHeight = 0, SmallWidth = 500, Speed = 500 };
  return PartialView("prtMap", model);        
}

并且调用是通过这个 ajax 方法发生的:

$.ajax({               
 url: "/Project/ShowMap",   
 type: "Post",                
 data: { address: AddressString },                
 success: function (data) {
      $("#divMapPlaceholder").html(data);
       }
});

当我使用这个ajax调用时,调用“GeocodeCallback”函数有很大的延迟,所以地图没有指向任何地方,但是在刷新地图(不是页面)之后它工作正常!

还有一件事......如果我使用 HtmlHelper partial 调用这个局部视图(如下面的代码),它工作正常......但我仍然需要按需调用它(如完成某些表格等)

 @{        
        @Html.Partial("prtMap", model)    
   }

我不知道出了什么问题...

谢谢你。

4

1 回答 1

0

您可能想要加快速度的一件事是在服务器端执行地理编码。您可以在 ShowMap 函数中执行此操作。您可以在此处找到有关如何在 .NET 中使用 Bing Maps REST 服务的信息:http: //msdn.microsoft.com/en-us/library/jj819168.aspx

于 2013-08-29T13:03:15.413 回答