代码之家  ›  专栏  ›  技术社区  ›  Sfmar

Leavelet与ASP.NETMVC的集成

  •  1
  • Sfmar  · 技术社区  · 6 年前

    我想用传单( https://leafletjs.com/ )基于ASP.NETMVC5构建的项目中的javascript库。

    https://leafletjs.com/examples/crs-simple/crs-simple.html

    Index.cshtml

    <style>
        #map {
        height: 600px;
    }
    
    </style>
    
    <div id="map"></div>
    
    <script>
    
        var map = L.map('map', {
            crs: L.CRS.Simple,
            minZoom: -5
        });
    
        var bounds = [[0,0], [1000, 1000]];
    
        var image = L.imageOverlay('aMap.PNG', bounds).addTo(map);
    
        map.fitBounds(bounds);
    
    </script>
    

    在layout视图中,我按照以下准则的指示,将以下代码放在HTML代码的头部: https://leafletjs.com/download.html

    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" />
    <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script>
    

    但这不起作用,我可以看到,即使Intellisense也无法识别该库。

    下载软件包 如前所述,我将这些文件添加到了项目中,但考虑到MVC项目结构,我将mobile.css文件添加到了Content文件夹中,其余的js文件添加到了Scripts文件夹中。在布局视图中,我添加了:

    <link rel="stylesheet" href="~/Content/leaflet.css" />
    <script src="~/Scripts/leaflet.js"></script>
    

    现在,Intellisense可以识别库,但在运行项目时,地图仍不会显示在视图中。

    我是不是错过了一些明显的东西,也许是重要的?如果答案很简单,请接受我的回答,但我是一个使用.NET框架和ASP.NETMVC结构的初学者,我仍在试图找到跨越这个框架的方法。

    更新

    意识到我是从索引视图加载的,所以没有先加载传单.js。

    我现在可以看到传单地图部分,但是

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sfmar    6 年前

    在@ADyson的帮助下,我解决了更新中提到的第一个问题:我是直接从索引视图加载的,而索引视图没有先加载传单.js。

    关于加载图像的问题,我通过分析GET方法用于检索图像的路径,找到了放置图像的正确路径,该路径位于项目的主文件夹中,以及其他文件夹(如内容、模型等)。