c# - Leafllet 与 ASP .NET MVC 的集成
问题描述
我正在尝试在基于 ASP .NET MVC5 的项目中使用 Leaflet ( https://leafletjs.com/ ) javascript 库。
为了简单起见,假设我正在尝试在视图上运行以下代码(由本教程提供: https ://leafletjs.com/examples/crs-simple/crs-simple.html) ),它使用预定义的布局 (_Layout.cshtml):
索引.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>
在布局视图中,我将以下代码放在 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 项目结构,我将 leaflet.css 文件添加到 Content 文件夹,将其余 js 文件添加到 Scripts 文件夹. 在布局视图中,我添加了:
<link rel="stylesheet" href="~/Content/leaflet.css" />
<script src="~/Scripts/leaflet.js"></script>
现在,Intellisense 可以识别库,但在运行项目时,地图仍然没有显示在视图中。
我在这里错过了一些明显的东西,也许是进口?如果答案很简单,请多多包涵,但我是使用 .NET 框架和 ASP .NET MVC 结构的初学者,我仍在尝试找出跨过这个框架的方法。
更新
意识到我是从索引视图加载的,所以没有先加载leaflet.js。
我现在可以看到传单地图部分,但未加载 PNG 图像。我相信传单无法找到,所以我应该将图像放在项目结构中的哪个位置?我尝试将它放在 Content and Scripts 文件夹中,但没有成功。
解决方案
在@ADyson 的帮助下,我解决了更新中已经提到的第一个问题:我直接从索引视图加载,该视图没有使leaflet.js 首先加载。
关于加载图像的问题,我通过分析 GET 方法用于检索图像的路径找到了放置它的正确路径,该路径仅位于项目的主文件夹以及 Contents、Models 等其他文件夹中。
推荐阅读
- lua - Lua 端的堆栈转储
- nlp - Spacy的相似性
- jquery - 如何在弹出模型中呈现#new 视图。Ruby on Rails
- java - 如何将提交的 InputStream 解析为 JSONObject?
- typescript - 使用 Firebase 函数发出 http 请求时找不到地址
- regex - Vala regex using groups with subgroups keeps ending in a segmentationfault
- algorithm - 使用动态编程计算赢得比赛的机会
- java - 将更改直接填充到弹性搜索
- php - 从mysql中的多个表中删除
- angular - Angular 4中控件的动态添加