2011-07-19 7 views
0

地図コントロールから2つの値を取得して、コントローラにモデルを送り返そうとしています。コントローラがモデルの値を受け取るように、これらの値を隠し入力 'Html.hiddenfor()'に入れるのが最善の解決策であると考えました。asp.net mvc:隠し入力にjavascript浮動小数点数を取得

これは私のJavaScript

endDragDetails = function (e) { 
    alert("Event Info - start drag \n" + "Start Latitude/Longitude: " + e.entity.getLocation()); 
    var locationx = e.entity.getLocation(); 
    alert(locationx.latitude); 
    document.getElementById("longitude").value = parseFloat(locationx.longitude); 
} 

あるalertboxesはlocationx varに浮動小数点値がある私を見ます。私は浮動小数点数が実際に文字列である場合、parseFloat()関数で渡すことを試みました。経度のIDは確かに "経度"です、私はhtmlソースでそれを確認しました。

これは私が戻ってきてるすべてが0,0である私のCSHTML部分

@Html.HiddenFor(m => m.longitude); 

です。 このソリューションでは何か不足していますか?

UPDATE @ Html.TextBoxFor(m => m.longitude)でhiddenforを変更すると、javascriptメソッドを実行した後にテキストボックスに経度が表示されます。ただし、コントローラに送信しない場合、値は0,0のままです。しかし、コントローラには、例えば、ファーストネームストリングのような他のすべての値が送られます。

答えて

2

私はちょうどあなたがやっていることを使って素早くチェックしました。しかし、浮動小数点数として0,0などを解析することができないため、位置xから取得している値に少し疑わしいです。とにかくそれを文字列として扱うとき、隠しフィールドに割り当てるときには、必要はありません。

+0

返信いただきありがとうございます。私は問題を解決しました。それはNLである私のCurrentUICultureと関係がありました。私はそれをENに変更し、それは完全に動作します。 NLの浮動小数点数は、このような5,34のEN UIcultureで書かれています。このようなwrittingは5.34です。 UICultureはモデルに影響を与えませんでした。これは新しい課題です。 – BBQ

関連する問題