c# - JavaScript float 错误

标签 c# javascript asp.net asp.net-mvc razor

我做了这段代码 文件 Real.cs

public ActionResult Index() {
    IList<Eventdata> liste = DATA2.Eventdata.GetEventdata();
    int a = liste.Count;

    float lat = liste[a-2].Latitude;
    float longi = liste[a-2].Longitude;
    IList<float> model = new List<float>();
    model.Add(lat);
    model.Add(longi);
    return View(model);
}

我映射了表EventData:它包含两个属性 float (纬度、经度),我想知道它的最后一个值。

文件索引.CShtml

@model IList<float> @{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Lay3.cshtml";  
}

    <body  onload="initialize(@Model[0],@Model[1])">
    <div id="map_canvas" style="width: 800px; height: 500px;">
    </div>
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript">
    </script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
    </script>
    <script type="text/javascript">

    function initialize(a, b) {
        alert(a);
        alert(b);
        var myLatLng = new google.maps.LatLng(a,b);

        var myOptions = {
            zoom: 30,
            center: myLatLng,
            mapTypeId: google.maps.MapTypeId.TERRAIN
        };

        var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
        var flightPlanCoordinates = [
        new google.maps.LatLng(a,b)
        ];

        var flightmarker = new google.maps.Marker({
   position: new google.maps.LatLng(a,b),
  map: map, title: " denden"
        });
    }    

    </script>
    </body>

我有最后一点: Latitude=34.75064longitude=10.761744 。但消息是:3475064。 为什么?我该如何纠正它。

最佳答案

如果您的服务器或应用程序使用“en-US”以外的文化,那么我相信问题与

onload="initialize(@Model[0],@Model[1])"

在这里,您隐式地在 float 类型上使用 C# .ToString 方法并将其传递给 javascript。但是,C# 考虑了文化信息,而 javascript 只处理文化信息。

您应该在转换中明确设置文化,例如:

  @model IList<float>
    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Lay3.cshtml";
        CultureInfo culture = CultureInfo.GetCultureInfo("en-US");
        string latitude = Model[0].ToString(culture);
        string longitude = Model[1].ToString(culture);
    }
    <body onload="initialize(@latitude,@longitude)">
edit: GetCultureInfo

关于c# - JavaScript float 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12437092/

相关文章:

JavaScript 相当于 PHP 的 isset

c# - 建立一个简单的 websocket 握手

c# - 在引用类型上重写 Equals 是否应该始终意味着值相等?

c# - 如何在 EF 中使用存储库模式使用存储过程和复杂类型?

javascript - 奇怪的 IE JavaScript 错误

javascript - 在 Web API Core 和 Angular JS 中启用 CORS

c# - .Net接口(interface)继承编译

c# - ASP MVC Less 文件给出 : Exception has been thrown by the target of an invocation

c# - Silverlight Bing 通过 SSL 映射

c# - 如何使用 C# 隐藏和显示 html 模板表?