Пожалуйста, ознакомьтесь с рабочим примером, созданным в Net Core MVC, в здесь Посмотрите на действие index в контроллере Home и представление index.cshtml.
В вашем коде сначала вам нужно пройти Модал для просмотра.Ваш код:
var items = await DocumentDBRepository<Device>.GetDevicemapAsync(d => d.Id != null);
return View();
Должен пройти модальный для просмотра, как показано ниже.
var items = await DocumentDBRepository<Device>.GetDevicemapAsync(d => d.Id != null);
return View(items);
. Создание массива объектов в представлении неверно
@foreach (var item in Model)
{Html.Raw ("var features = [{position: new google.maps.LatLng (" + item.Lat + "," + item.Long + "), тип: 'parking'},];");}
Просто создайте массив Javascript из списка c # в View как
var locationArray = @Html.Raw(Json.Serialize(ViewBag.Locations));
Так что раздел Обновление скрипта в представлении может выглядеть следующим образом.Пожалуйста, обратитесь к ссылке на GitHub для фактического рабочего образца
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
}
$(document).ready(function() {
initMap();
var locationArray = @Html.Raw(Json.Serialize(ViewBag.Locations));
var newArray = locationArray.map((value) => {
return {
position: new google.maps.LatLng(value.lat, value.lon),
type:'parking'
}
});
// Create markers.
newArray.forEach(function (feature) {
var marker = new google.maps.Marker({
position: feature.position,
map: map
});
});
});
Примечание: В моем примере я передал список мест для просмотра, используя пакет просмотра.Вы можете использовать передачу как модальный.Выход будет выглядеть следующим образом:
Редактировать: заполнять массив javascript из списка можно также следующим образом.
var locationArray = [];
@foreach (var item in ViewBag.Locations)
{
@:locationArray.push("{lat:@item.lat, lon:@item.lon}");
}