如何在剃刀中加载Subgurim GMap对象(MVC3 / 4)

时间:2012-07-16 21:39:10

标签: c# asp.net-mvc razor subgurim-maps

我正在使用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我不能这样做。

干杯!

3 个答案:

答案 0 :(得分:1)

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

  • 从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继承才能使用剃刀。

  • 确保您拥有控制键(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或其他选择的视图引擎)。我会在准备好生产时更新此响应。