এখানে<text>
বর্ণিত ছদ্ম-উপাদানটি ব্যবহার করুন , রেজার সংকলকটিকে পুনরায় সামগ্রী মোডে বাধ্য করতে:
<script type="text/javascript">
// Some JavaScript 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>
হালনাগাদ:
স্কট গুথ্রি সম্প্রতি@:
রেজারে সিনট্যাক্স সম্পর্কে পোস্ট করেছেন , যা <text>
আপনার কাছে জাভাস্ক্রিপ্ট কোড যুক্ত করতে কেবল এক বা দুটি লাইন থাকলে তা ট্যাগের চেয়ে কিছুটা কম un নিম্নলিখিত পদ্ধতিটি সম্ভবত পছন্দনীয় হবে, কারণ এটি উত্পন্ন এইচটিএমএলের আকার হ্রাস করে। (আপনি এমনকি অ্যাডমার্কার ফাংশনটিকে স্থিতিশীল, ক্যাশেড জাভাস্ক্রিপ্ট ফাইলটিতে আরও আকার হ্রাস করতে সরাতে পারেন):
<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>
কলটিকে addMarker
আরও সঠিক করার জন্য উপরের কোডটি আপডেট করুন ।
স্পষ্ট করার জন্য, কলটি অনেকটা সি # কোডের মতো দেখানো @:
সত্ত্বেও, রেজারটিকে পাঠ্য মোডে ফিরিয়ে দেয় addMarker
। রেজার তারপরে @item.Property
সিনট্যাক্সটি তুলে ধরে বলে যে এটি সরাসরি সেই বৈশিষ্ট্যগুলির সামগ্রীতে আউটপুট করে।
আপডেট 2
এটি লক্ষণীয় যে জাভাস্ক্রিপ্ট কোড রাখার জন্য ভিউ কোডটি সত্যই কোনও ভাল জায়গা নয়। জাভাস্ক্রিপ্ট কোডটি একটি স্ট্যাটিক .js
ফাইলে স্থাপন করা উচিত এবং তারপরে এটি এজাক্স কল থেকে বা data-
এইচটিএমএল থেকে বৈশিষ্ট্যগুলি স্ক্যান করে প্রয়োজনীয় ডেটা পাওয়া উচিত । আপনার জাভাস্ক্রিপ্ট কোডটি ক্যাশে করা সম্ভব করার পাশাপাশি এটি এনকোডিংয়ের সমস্যাগুলি এড়িয়ে চলে, যেহেতু রেজারটি HTML এর জন্য এনকোড করার জন্য ডিজাইন করা হয়েছে, তবে জাভাস্ক্রিপ্ট নয়।
কোড দেখুন
@foreach(var item in Model)
{
<div data-marker="@Json.Encode(item)"></div>
}
জাভাস্ক্রিপ্ট কোড
$('[data-marker]').each(function() {
var markerData = $(this).data('marker');
addMarker(markerData.Latitude, markerData.Longitude,
markerData.Description, markerData.Title);
});
@:
সিনট্যাক্স সম্পর্কিত আমার আপডেটে আগ্রহী হতে পারেন ।