0

C# と ASP.NET MVC4 で Web アプリケーションを実行しています。ビュー ページの 1 つでマップをロードする際に問題が発生しています... 詳細ページにマップがあり、インデックス ページから詳細ページに移動します。

これは私のコードの一部です:

<div id='myMap' style="position:relative; width:400px; height:400px;">
</div>
<div>
    <input type="button" value="createWalkingRoute" onclick="createDirections();" />
</div>
<div id='directionsItinerary'> </div>


 @section scripts{

 <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
  <script type="text/javascript">
      var map = null;
      var directionsManager;
      var directionsErrorEventObj;
      var directionsUpdatedEventObj;

      function getMap() {
          map = new Microsoft.Maps.Map(document.getElementById('myMap'), { credentials: 'mykey' });
      }

      function createDirectionsManager() {
          var displayMessage;
          if (!directionsManager) {
              directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);
              displayMessage = 'Directions Module loaded\n';
              displayMessage += 'Directions Manager loaded';
          }
          alert(displayMessage);
          directionsManager.resetDirections();
          directionsErrorEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsError', function (arg) { alert(arg.message) });
          directionsUpdatedEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', function () { alert('Directions updated') });
      }

      function createWalkingRoute() {
          if (!directionsManager) { createDirectionsManager(); }
          directionsManager.resetDirections();
          // Set Route Mode to walking 
          directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.walking });
          var seattleWaypoint = new Microsoft.Maps.Directions.Waypoint({ address: 'Seattle, WA' });
          directionsManager.addWaypoint(seattleWaypoint);
          var redmondWaypoint = new Microsoft.Maps.Directions.Waypoint({ address: 'Redmond, WA', location: new Microsoft.Maps.Location(47.678561, -122.130993) });
          directionsManager.addWaypoint(redmondWaypoint);
          // Set the element in which the itinerary will be rendered
          directionsManager.setRenderOptions({ itineraryContainer: document.getElementById('directionsItinerary') });
          alert('Calculating directions...');
          directionsManager.calculateDirections();
      }

      function createDirections() {
          if (!directionsManager) {
              Microsoft.Maps.loadModule('Microsoft.Maps.Directions', { callback: createWalkingRoute });
          }
          else {
              createWalkingRoute();
          }
      }

getMap();

  </script>

 }

最初に [詳細] ページに移動すると、マップが読み込まれません。ただし、ページが更新された場合、マップは後で読み込まれます。だから私にとって、これはある種の読み込みの問題です。しかし、数時間試した後、私は完全に動けなくなりました。誰でも助けることができますか?ありがとう

4

1 に答える 1

0

getMap()ページがロードされた後に呼び出される場所、たとえばbody onload eventに呼び出しを配置し​​ます。jquery を使用している場合は、$(document).ready() .

于 2013-03-14T09:16:41.177 に答える