Как исправить эту ошибку, Uncaught синтаксическая ошибка? Использование карт Google-API - PullRequest
0 голосов
/ 10 марта 2020

enter image description here Я получаю эту ошибку при загрузке этой страницы, "Uncaught SyntaxError: Неожиданный токен"; ' Что может быть причиной этой ошибки? Отсутствуют некоторые библиотеки Jquery. Если да, то какую версию мне нужно импортировать, чтобы решить эту ошибку? Пожалуйста, посоветуйте мне товарищи для ясности, спасибо. Я отредактировал, показывая также logi c для контроллера, где я передаю sql соединение из базы данных, используя имя таблицы для доступа к полям из имени таблицы.

@{
    ViewBag.Title = "GoogleMaps";
    Layout = null;
}

<!DOCYTPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>eNtsa Office Location</title>
</head>
<body>
<div id="dvMap" style="width: 500px; height: 500px">
</div>
    <script type="text/javascript" src="https://maps.googleapi.com/maps/api/js?key=AI***"></script>
    <script type="text/javascript">
        var markers = @Html.Raw(ViewBag.Markers); // Inspection it comes from here as being uncaught syntax error.
        window.onload = function () {
            var mapOptions = {
                center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
                zoom: 8,
                mapTypeId: google.maps.mapTypeId.ROADMAP
            };

            var infoWindow = new google.maps.infoWindow();
            var map = new google.maps(document.getElementById("dvMap"), mapOptions);
            for (i = 0; i < markers.length; i++) {
                var data = markers[i]
                var myLatlng = new google.maps.LatLng(data.lat, data.lng);
                var marker = new google.maps.Marker({
                    position: myLatlng,
                    map: map,
                    title: data.title
                });
                (function (marker, data) {
                    google.maps.event.addListener(marker, "click", function (e) {
                        infoWindow.setContent(data.description);
                        infoWindow.open(map, marker);
                    });
                })(marker, data);
            }
        }
    </script>
</body>

</html>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.SqlClient;
using System.Configuration;

namespace eNtsaRegistrationTraining.Controllers
{
    public class MapsController : Controller
    {
        // GET: Maps
        public ActionResult GoogleMaps()
        {
            string markers = "[";
            string conString = ConfigurationManager.ConnectionStrings["eNtsaRegistration"].ConnectionString;
            SqlCommand cmd = new SqlCommand("SELECT * FROM Locations");
            using (SqlConnection con = new SqlConnection(conString))
            {
                cmd.Connection = con;
                con.Open();
                using(SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while(sdr.Read())
                    {
                        markers += "{";
                        markers += string.Format("'title': '{0}',", sdr["Name"]);
                        markers += string.Format("'lat:' '{0}',", sdr["Latitute"]);
                        markers += string.Format(" 'lng': '{0}',", sdr["Longitute"]);
                        markers += string.Format("'description': '{0}',", sdr["Description"]);
                        markers += "},";

                    }
                }
                con.Close();
            }

            markers += "];";
            ViewBag.Makers = markers;

            return View();
        }
    }
}

1 Ответ

0 голосов
/ 10 марта 2020

В вашем контроллере есть ошибка опечатки:

ViewBag.Makers = markers;

и должно быть:

ViewBag.Markers = markers;

Изменение этого значения приведет к выводу строки как предполагалось.

...