2012-12-10 83 views
0

我试图坚持google.maps.Geocoder()获取的地理位置数据。 从Javascript我设定的值到HTML中的(实际上)隐藏的元素(这是工作的罚款):Asp.Net:将字符串转换为长

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"}) 

根据在十进制分隔符上,我得到一个验证错误,或经度和纬度值没有设置为模型。这两个属性的类型为

为什么Asp.Net不能自动解析这些值? 我很新的Asp.Net,但我知道我可以其他:

  • 写我自己的HTML辅助
  • 通过视图模型在我的控制器或
  • 坚持字符串值

我应该选择哪种方式?

谢谢,波多黎各

回答

1

你得到错误,因为long店大64位整数(它实际上Int64幕后),而不是浮点值。

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

+0

啊......有时候我没有看到树木的木头:-)当然,我需要使用双重替代...对不起,我的愚蠢:-) – core