我是MVC的新手,所以请原谅我的无知。我所拥有的是一个Google Maps脚本,它将根据用户页面动态更改标记位置。在Web表单中,我可以用下面的代码编写脚本,如下所示:
protected void maps_wrapper_Init(object sender, EventArgs e)
{
maps_wrapper.Text = "<script> " +
"function initialize() {" +
"var mapOptions = {" +
"zoom: 12," +
"center: new google.maps.LatLng(-25.363882, 131.044922)," +
"mapTypeId: google.maps.MapTypeId.SATELLITE" +
"};" +
"var map = new google.maps.Map(document.getElementById('map-canvas')," +
" mapOptions);" +
"var image = 'img/mapMarker.png';" +
"var marker = new google.maps.Marker({" +
"position: map.getCenter()," +
"map: map," +
"title: 'Click to zoom'," +
"icon: image" +
"}); " +
"google.maps.event.addListener(map, 'center_changed', function() {" +
"window.setTimeout(function() {" +
"map.panTo(marker.getPosition());" +
"}, 3000);" +
"});" +
"google.maps.event.addListener(marker, 'click', function() {" +
"map.setZoom(18);" +
"map.setCenter(marker.getPosition());" +
"});" +
"}" +
"google.maps.event.addDomListener(window, 'load', initialize);" +
"</script> ";
}
并用标签称呼它
<asp:Label runat="server" ID="map_wrapper" OnInit="search_wrapper_Init" />
您将如何在MVC中做到这一点?
还是我朝着完全错误的方向前进?
最佳答案
您无需将脚本放入控制器中。 JavaScript是客户端代码,您将其放在视图中。
<script type="text/javascript">
function initialize() {
var mapOptions = {
zoom: 12,
center: new google.maps.LatLng(-25.363882, 131.044922),
mapTypeId: google.maps.MapTypeId.SATELLITE
};
// etc.
</script>
或在视图引用的自己的
.js
文件中,或包含在视图使用的脚本包中。(它实际上不应该在Web窗体的代码隐藏中,它应该在页面上。或者在页面引用的
.js
文件中。)关于javascript - 如何在.net MVC5 Controller 中编写JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29156939/