我正在使用ASP.NET MVC 4,而我正在尝试在我的页面上加载Google地图。
我正在使用Subgurim lib并且已经拥有了地图对象,但我不知道如何将其加载到页面中。
这是我到目前为止所得到的:
@model Subgurim.Controles.GMap
@{
ViewBag.Title = "Pesquisa Carona";
}
<h2>PesquisaCarona</h2>
<h4>Diga o endereço</h4>
<input type="text" name="txEndereco" />
<input type="submit" />
<cc1:GMap ID="googleMap" runat="server" /> <!-- This doesnt work!!!--!>
我知道通常我会添加直接访问它的地图,如:
对于服务器端:
GMap1.addGMarker(oMarker);
对于页面:
<cc1:GMap ID="GMap1" runat="server" Height="300px" Width="300px" />
但是对于MVC我不能这样做。
干杯!
答案 0 :(得分:1)
我能够使用.NET 4.5,MVC 5(razor),GMaps 4.1.0.6和Visual Studio 2013的基本示例,通过在cshtml中将ascx用户控件呈现为部分。以下是我为使其发挥作用所做的工作:
在ascx中:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Gmap.ascx.cs" Inherits="YourApp.Views.Gmap" %> <%@ Register Assembly="GMaps" Namespace="Subgurim.Controles" TagPrefix="gmaps" %> <form id="form1" runat="server"> <gmaps:GMap ID="GMap1" runat="server" Width="500px" Height="250px" EnableViewState="False" /> </form>
在ascx.cs中:
namespace YourAPP.Views { using System; using System.Drawing; using System.Web.Mvc; public partial class Gmap : ViewUserControl { protected void Page_Load(object sender, EventArgs e) { GMap1.enableDragging = false; GMap1.Language = "en"; GMap1.BackColor = Color.White; GMap1.Key = "YOUR GOOGLE KEY"; GMap1.CommercialKey="YOUR COMMERCIAL KEY"; } } }
在cshtml中:
@ Html.Partial(“Gmap”)
**有几点需要注意:
ascx中的表单标签是必需的,没有它就无法使用。
控件需要从ViewUserControl而不是UserControl继承才能使用剃刀。
确保您拥有控制键(Google,Commercial)。有关详细信息,请参阅控制站点。
如果您没有将控件放在与cshtml相同的文件夹中,则需要调整给予Partial助手的路径。
谢谢你:
我希望这会有所帮助 - 干杯,
安克尔
答案 1 :(得分:0)
我遇到了同样的问题。
在我的项目中(使用MVC3制作)我在aspx引擎中添加了局部视图(我的网站的其余部分是使用剃刀)。我关注了subgurim教程网站。然后我添加了谷歌API密钥,但即使一切似乎都好,我得到一个灰色的矩形! 然后我在谷歌发现了这篇文章:http://it.googlemaps.subgurim.net/Foro/general-discussions-perm5956-5963.aspx
:(
答案 2 :(得分:0)
我是该项目的开发人员之一,我们正在开发适合MVC的新版本(Razor或其他选择的视图引擎)。我会在准备好生产时更新此响应。