Asp.net mvc怎么在razor里写js代码?

我试图在Razor里写JS代码,但是不行

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<scripttype="text/javascript">

//some javascrpt code here to display map etc

//now add markers

@foreach (var item in Model) {

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);

});

}

</script>

解决方法 1:

使用<text>这个伪元素来强制Razor从编译模式返回到内容模式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<script type="text/javascript">

//some javascrpt code here to display map etc

//now add markers

@foreach (variteminModel) {

<text>

varmarkerlatLng =newgoogle.maps.LatLng(@(Model.Latitude), @(Model.Longitude));

vartitle ='@(Model.Title)';

vardescription ='@(Model.Description)';

varcontentString ='<h3>'+ title +'</h3>'+'<p>'+ description +'</p>'

varinfowindow =newgoogle.maps.InfoWindow({

content: contentString

});

varmarker =newgoogle.maps.Marker({

position: latLng,

title: title,

map: map,

draggable:false

});

google.maps.event.addListener(marker,'click',function() {

infowindow.open(map, marker);

});

</text>

}

</script>