Asp.Net:将字符串转换为long

时间:2012-12-10 19:03:50

标签: asp.net-mvc razor

我正在尝试保留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
  • 将视图模型传递到我的控制器或
  • 持久保存字符串值

我更喜欢哪种方式?

谢谢,Rico

1 个答案:

答案 0 :(得分:1)

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

如果您希望代码使用浮点值,则需要使用floatdouble之类的内容。