Javascript 如何使用ASP.NET mvc从数据库加载Google地图中的多个标记?
使用此代码从数据库中检索数据并显示在标记的信息窗口中。问题是,它甚至没有向制造商展示,但在提供静态数据方面做得很好。数据以Json格式返回,并在for循环中迭代,循环是否有任何问题 控制器 看法Javascript 如何使用ASP.NET mvc从数据库加载Google地图中的多个标记?,javascript,jquery,json,sql-server,asp.net-mvc,Javascript,Jquery,Json,Sql Server,Asp.net Mvc,使用此代码从数据库中检索数据并显示在标记的信息窗口中。问题是,它甚至没有向制造商展示,但在提供静态数据方面做得很好。数据以Json格式返回,并在for循环中迭代,循环是否有任何问题 控制器 看法 有什么错误?@Nikolaus无法从数据库检索数据,也没有显示任何标记。调用“函数initMapzoomeLevel,latDb,longDb”后只有一个映射,其余代码无效。控制器调试中是否有错误?@Nikolaus ViewBag.ListOfDropdown=db.tb_freelot.ToList
有什么错误?@Nikolaus无法从数据库检索数据,也没有显示任何标记。调用“函数initMapzoomeLevel,latDb,longDb”后只有一个映射,其余代码无效。控制器调试中是否有错误?@Nikolaus ViewBag.ListOfDropdown=db.tb_freelot.ToList;返回以db为单位的条目计数,`var data=db.tb_freeslot.ToList;返回Jsondata,JsonRequestBehavior.AllowGet;`以json格式返回表中的所有详细信息,但public JsonResult GetAllLocationByidit id会抛出一个参数,除非代码中有SingleOrDefault。去掉这个。
db_SafeSpotEntities2 db = new db_SafeSpotEntities2();
public ActionResult Find()
{
ViewBag.ListOfDropdown = db.tb_freeslot.ToList();
return View();
}
public JsonResult GetAllLocation()
{
var data = db.tb_freeslot.ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
public JsonResult GetAllLocationById(int id)
{
var data = db.tb_freeslot.Where(x => x.freeslot_id == id).SingleOrDefault();
return Json(data, JsonRequestBehavior.AllowGet);
}
<div>
<select class="form-control" id="selectedValue" onchange="GoLocation(this.value)">
<option>--Select--</option>
@foreach (var item in ViewBag.ListOfDropdown)
{
<option value="@item.freeslot_id">@item.sllotinfree_name</option>
}
</select>
<div id="map"></div>
<script>
var map;
function initMap(zoomeLevel, latDb, longDb) {
map = new google.maps.Map(document.getElementById('map'), {
center: { lat: latDb != null ? latDb : 10.523900, lng: longDb != null ? longDb : 76.212250 },
zoom: zoomeLevel != null ? zoomeLevel : 15
});
}
function GoLocation(locationId) {
debugger;
$.get("/user/GetAllLocationById?id=" + locationId, function (data, status) {
initMap(data.Zoom, data.Lat_infree, data.Long_infree);
var marker = [];
var contentString = [];
var infowindow = [];
for (var i = 0; i < data.Length; i++) {
marker[i] = new google.maps.Marker({
position: { lat: data[i].Lat_infree, lng: data[i].Long_infree},
map: map
});
contentString[i] = '<div id="content">' +
'<div id="siteNotice">' +
'</div>' +'<h6 id="firstHeading" class="firstHeading"><b>' + data[i].sllotinfree_name + '</b></h6>' +
'<div id="bodyContent">' +
'<p><b>' + data[i].car_freeslot + '</b><b>car</b>' +
'<p><b>' + data[i].bike_freeslot + '</b><b>bike</b>';
infowindow[i] = new google.maps.InfoWindow({
content: contentString[i]
});
var markervalue = marker[i];
google.maps.event.addListener(marker[i], 'mouseover', (function (markervalue, i) { return function () {
infowindow[i].open(map, marker[i]);
}
})(marker[i], i));
google.maps.event.addListener(marker[i], 'mouseout', (function (markervalue, i) {
return function () {
infowindow[i].close();
}
})(marker[i], i));
}
})
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBNKM7U-FRBfd6BfD3UwfRQRRpSgu2TsiU&callback=initMap"
async="" defer="defer" type="text/javascript"></script>