2014-11-16 113 views
0

你好,我有一个latlng类的小问题。Google Maps API 3,c#MVC5

当我使用它是这样的:

position: new google.maps.LatLng(51.172414, 17.115294) 

标记是在正确的位置。

但是,当我想是这样做的:

position: new google.maps.LatLng(@Model[0].latitude, @Model[0].longitude), 

上有逗号和最后一个括号的语法错误,并标记不显示。浏览器调试器不会显示任何js问题。

latitudelongitude是十进制的。是因为逗号之后他们需要大量的数字吗?如果是,那么它应该是在js中的一些错误,在视图中没有语法错误。

任何想法可能是错误的?或者如何在这个类中使用模型中的自己的数据?

+0

为什么你把逗号放在最后?下一行是什么? –

+0

构造函数映射的另一部分:映射,语法错误在括号内,纬度之后和经度之后的括号中。 – DProphet

+0

生成的HTML在浏览器中的外观如何?你的代码看起来很好。忽略Visual Studio可能显示的任何语法错误。 Razor Intellisense就像是地狱一样。只需运行你的应用程序,看看生成的javascript与工作代码有什么不同。 –

回答

0

问题在于分隔符。在DB中有逗号,在VS中有点。但在js的剃刀中,又有了逗号。我像那样解决了它。

var latit = @Model[0].latitude.ToString().Replace(',','.'); 
var longit = @Model[0].longitude.ToString().Replace(',','.');    
var marker = new google.maps.Marker({    
    position: new google.maps.LatLng(latit, longit), 
    map: map, 
    title: '@Html.Raw(Model[0].name)', 
    html: '<img src="/Img/'[email protected][0].id+ '_0.jpg" width="250px" height="250px">' 
});