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ヘルパーを書く
  • ビューモデルをコントローラーに渡すか、
  • 文字列値を永続化する

どちらの方法を選ぶべきですか?

ありがとう、リコ

4

1 に答える 1

1

long浮動小数点値ではなく、大きな64ビット整数値(実際Int64には舞台裏にある)を格納するため、エラーが発生します。

floatコードを浮動小数点値で動作させる場合は、またはのようなものを使用する必要がありますdouble

于 2012-12-10T19:05:12.103 に答える