gpt4 book ai didi

c# - 无效的 Double.ToString() 导致 Razor 代码生成 javascript

转载 作者:数据小太阳 更新时间:2023-10-29 05:36:07 24 4
gpt4 key购买 nike

我使用以下 Razor 代码生成一些 javascript 以在 Google map 上生成标记。

@foreach(Point point in Model.Points.Take(3))
{
String longitude = point.Longitude.ToString(CultureInfo.InvariantCulture);
String latitude = point.Latitude.ToString(CultureInfo.InvariantCulture);
<text>
var location = new google.maps.LatLng(@(longitude), @(latitude));
bounds.extend(location);
var marker = new google.maps.Marker({
position: location,
map: map
});
</text>
}

在开发中,这正确地变为:

var location = new google.maps.LatLng(52.2124273, 5.9545532);
bounds.extend(location);
var marker = new google.maps.Marker({
position: location,
map: map
});

但是,在我们的生产服务器上,它变成了:

var location = new google.maps.LatLng(522124273000, 59545532000);
bounds.extend(location);
var marker = new google.maps.Marker({
position: location,
map: map
});

它只生成一个灰色的谷歌地图。是什么导致了这种奇怪的 ToString 行为?

编辑

Point 类是自定义类,而不是来自库。以下是相关部分:

public class Point
{
private Double latitude;
private Double longitude;

public Double Latitude
{
get
{
return latitude;
}
}

public Double Longitude
{
get
{
return longitude;
}
}
}

最佳答案

JK 和 AlexC 是对的,请参阅他们对我的问题的评论。来自外部 API 的数据有误。将全局文化设置为 en-US 解决了这个问题。

我只不明白一件事:我正在使用一个使用 JSON.net 的库,在文档中到处都说解析是用 InvariantCulture 完成的。所以我认为全局文化不会产生影响。

关于c# - 无效的 Double.ToString() 导致 Razor 代码生成 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23673568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com