0

我正在尝试保留 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 很陌生,但我知道我可以:

  • 编写我自己的 html-helper
  • 将视图模型传递给我的控制器或
  • 持久化字符串值

我应该选择哪种方式?

谢谢, 里科

4

1 回答 1

1

您会收到错误,因为long存储大的 64 位整数值(它实际上Int64在幕后),而不是浮点值。

如果您希望您的代码使用浮点值,您需要使用类似floator的东西double

于 2012-12-10T19:05:12.103 回答