我正在尝试保留google.maps.Geocoder()获取的地理位置数据。 从javascript我将值设置为html中的(实际)隐藏元素(工作正常):
document.getElementById("longitude").value = results[0].geometry.location.lng();
document.getElementById("latitude").value = results[0].geometry.location.lat();
从那里我想将值传递给控制器:
@Html.TextBoxFor(model => model.Longitude, new { id = "longitude", type = "number" })
@Html.TextBoxFor(model => model.Latitude, new { id = "latitude", type = "number"})
根据小数分隔符,我得到验证错误,或经度和纬度的值未设置为模型。这两个属性都是 long 的类型。
为什么Asp.Net无法自动解析值? 我对Asp.Net很新,但我知道我还可以:
我更喜欢哪种方式?
谢谢,Rico
答案 0 :(得分:1)
您收到错误是因为long
存储了大的64位整数值(它实际上是幕后的Int64
),而不是浮点值。
如果您希望代码使用浮点值,则需要使用float
或double
之类的内容。