Неперехваченная синтаксическая ошибка, как исправить эту проблему?
Привет Команда
У меня есть отладка моего кода, я испытываю эту проблему неперехваченной синтаксической ошибки. Пожалуйста, помогите мне решить эту проблему, возможно, мне не хватает какой-то библиотеки javascript, пожалуйста, посоветуйте мне и помогите товарищам.
Что я уже пробовал:
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 dbo.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(); } } }
{ ViewBag.Title = "GoogleMaps"; Layout = null; } <pre lang="Javascript"><!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.googleapis.com/maps/api/js?key=AIzaSyB9vzf41FPK5l9NX0wCFgx_x873YuSq9KQ"></script> <script type="text/javascript"> var markers = @Html.Raw(ViewBag.Markers); 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.Map(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>
Richard MacCutchan
Где происходит ошибка?
gcogco10
var markers = @Html.Raw(ViewBag.Маркера);
Jon McKee
Что Видовой мешок.Маркера сдерживать? Похоже, что это массив, и в этом случае я почти уверен, что вам не нужно @HTML-код.Сырье() потому что все, что это делает,-это предотвращает кодировку Razor по умолчанию для строк, оборачивая некодированную строку в IHtmlString. На самом деле я не уверен, что произойдет, если вы передадите ему не-строку.
gcogco10
Я опускаю поставить логику для моего контроллера, я вызываю с помощью маркера из контроллера, что переменная обращается к этим полям, как было объявлено контроллером.