Utiliser l' <text>
pseudo-élément, comme décrit ici, à force de le rasoir compilateur de retour en mode de contenu:
<script type="text/javascript">
//some javascrpt code here to display map etc
//now add markers
@foreach (var item in Model) {
<text>
var markerlatLng = new google.maps.LatLng(@(Model.Latitude), @(Model.Longitude));
var title = '@(Model.Title)';
var description = '@(Model.Description)';
var contentString = '<h3>' + title + '</h3>' + '<p>' + description + '</p>'
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: latLng,
title: title,
map: map,
draggable: false
});
google.maps.event.addListener(marker, 'click', function () {
infowindow.open(map, marker);
});
</text>
}
</script>
Mise à jour:
Scott Guthrie a récemment posté sur @:
de la syntaxe de Rasoir, ce qui est un peu moins maladroit que l' <text>
tag si vous avez juste une ou deux lignes de code javascript à ajouter. L'approche suivante serait probablement préférable, car elle réduit la taille du fichier HTML généré. (Vous pouvez même déplacer le addMarker fonction statique, la mise en cache des fichiers javascript pour réduire davantage la taille):
<script type="text/javascript">
//some javascript code here to display map etc
...
//declare addMarker function
function addMarker(latitude, longitude, title, description, map)
{
var latLng = new google.maps.LatLng(latitude, longitude);
var contentString = '<h3>' + title + '</h3>' + '<p>' + description + '</p>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: latLng,
title: title,
map: map,
draggable: false
});
google.maps.event.addListener(marker, 'click', function () {
infowindow.open(map, marker);
});
}
//now add markers
@foreach (var item in Model) {
@:addMarker(@item.Latitude, @item.Longitude, '@item.Title', '@item.Description', map);
}
</script>
Mis à jour le code ci-dessus pour faire l'appel à l' addMarker
plus correct.
Pour clarifier, l' @:
des forces de Rasoir de retour en mode texte, même si addMarker
appel ressemble beaucoup à du code C#. Rasoir ramasse alors la @item.Property
de la syntaxe-à-dire qu'il devrait directement en sortie le contenu de ces propriétés.