0

我正在使用 ASP.NET MVC 4,并且正在尝试在我的页面上加载 Google 地图。

我正在使用Subgurim库并且已经有了地图对象,但我不知道如何将它加载到页面中。

这是我到目前为止得到的:

 @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,我无法做到这一点。

干杯!

4

3 回答 3

1

通过将 ascx 用户控件呈现为 cshtml 中的部分,我能够使用 .NET 4.5、MVC 5 (razor)、GMaps 4.1.0.6 和 Visual Studio 2013 来实现基本示例。这是我为使其工作所做的工作:

  • 从 NuGet 添加 Subgurim.Maps 包。
  • 添加一个 ascx 控件:在我的例子中,它是 Gmap.ascx,与我想使用的 cshtml 放在同一个文件夹中。您的代码最终应如下所示:
  • 在 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 才能与 razor 一起使用。

  • 确保您拥有用于控制的密钥(Google、Commercial)。有关这些的详细信息,请参见控制站点。

  • 如果您没有将控件放在与 cshtml 相同的文件夹中,则需要调整提供给 Partial 助手的路径。

谢谢至:

我希望这会有所帮助 - 干杯,

安克尔

于 2013-11-07T17:04:50.383 回答
0

我是该项目的开发人员之一,我们正在开发适合 MVC(Razor 或其他选择的视图引擎)的新版本。当它准备好投入生产时,我会更新这个响应。

于 2013-02-01T12:05:22.247 回答
0

我有同样的问题。

在我的项目(使用 MVC3 制作)中,我在 aspx 引擎中添加了一个局部视图(我网站的其余部分使用的是 razor)。我关注了 subgurim 教程网站。然后我添加了 google api 密钥,但即使一切正常,我也会得到一个灰色矩形!然后我在谷歌上找到了这篇文章:http: //it.googlemaps.subgurim.net/Foro/general-discussions-perm5956-5963.aspx

:(

于 2012-07-27T10:49:57.053 回答