2016-02-17 140 views
0

我有一個C#Web應用程序(asp.net網頁形式)與Default.aspx頁面內的以下內容是母版頁的一部分。然而,谷歌地圖從不加載,實際上它閃爍一次。但是,如果我將當前的確切代碼置於Content2之內,但將其置於.HTML文件中,地圖加載就會很好。ASP.NET中的谷歌地圖不加載

我按了F12,控制檯上沒有錯誤。這是爲什麼發生?

的Default.aspx:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&libraries=geometry"></script> 
<button onclick="initMap()">Load map</button><br/> 
<br /><div id="map" style="width:500px; height: 500px;"></div>  

<script type="text/javascript"> 
    function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 12, 
      center: new google.maps.LatLng(25.764116354703514, -80.19015369262695) 
      }); 

     //Dragable Marker 
     var marker0 = new google.maps.Marker({ 
      map: map, 
      position: new google.maps.LatLng(25.764116354703514, -80.19015369262695), 
      draggable: true 
      }); 

     }  
    </script> 
</asp:Content> 

輸出的屏幕截圖後點擊 「加載地圖」 按鈕:

enter image description here

+0

是什麼在你的瀏覽器的標記是什麼樣子? ASP.NET生成的HTML可能與您所期望的不同。 – jrummell

+0

@mason:你指的是哪個ID?我沒有在這裏使用任何服務器端組件,這應該純粹在瀏覽器端加載,沒有任何服務器端事務 –

+0

嘗試使用樣式#map {position:absolute; z-index:10000; }如果地圖出現,問題是您的母版頁佈局。 – davcs86

回答

1

你在的演技像一個形式的按鈕提交按鈕,這會導致頁面刷新。如果您未指定該按鈕的類型,則默認爲submit按鈕,導致表單提交併重新加載頁面。

您的按鈕標記更改爲:

<button type="button" onclick="initMap()">Load map</button>