Нечто странное (по крайней мере, для меня) происходит.У меня есть частичное представление, которое показывает пару маркеров карты Google.Однако, как только я использую свой собственный значок, если отказывается отображать.Но когда я даю свой маршрут в функции RegisterRoutes, например, global.asax.cs, например,
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
И если мое частичное представление находится в представлении индекса, оно по неизвестным мне причинам решает показать себя?Почему это и как это разрешимо?
Обновление (код): это мой код в частичном представлении под названием MapResults.
<script type="text/javascript">
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
collectingData();
google.maps.event.addListener(map, 'click', function() {
});
}
function codeAddress(location, name, contract) {
var address = location;
var infowindow;
var image;
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var image = new google.maps.MarkerImage(returnImage(contract),
// This marker is 20 pixels wide by 32 pixels tall.
new google.maps.Size(30, 42),
// The origin for this image is 0,0.
new google.maps.Point(40,45),
// The anchor for this image is the base of the flagpole at 0,32.
new google.maps.Point(0, 32));
var marker = new google.maps.Marker({
map: map,
// icon: image, only showing when registered in global asax
position: results[0].geometry.location,
});
infowindow = new InfoBox(infoboxOptions(boxText(name, contract)));
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
Это мои самые важные функции.
Это представление, которое использует мое частичное представление.
@model IPagedList<HospitalSearch.Models.Buildings>
@{
ViewBag.Title = "Map";
}
<div>
@Html.Partial("MapResults")
</div>
@foreach (var item in Model) {
<input id="adres" type="hidden" value=@Html.DisplayFor(modelItem => item.StreetBuilding) @Html.DisplayFor(modelItem => item.NumberBuilding) />
}
</body>
<div class="pager">
@Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount)
</div>
Наличие его в RegisterRoutes будет отображаться как требуется, иначе не будет.Обновление: оказывается, RegisterRoutes каким-то образом получает «правильный» URL-адрес моего изображения.Если я использую прямой путь, скажем http://localhost:8080/Content/image.png, тогда все в порядке.Однако «Content / image.png» не работает.Если я выясню, что именно происходит, я обновлю, конечно.