jQuery mobile \ MVCアプリに少し奇妙な問題があり、これまで追跡できませんでした。
私の見解では、2つのHTML.HiddenForフィールドがあります。これらのフィールドの値は、フォームが投稿されたときに、コントローラーのモデルクラスのプロパティにバインドされます。プロパティのタイプはDoubleです。フォームが投稿されたときの私のローカル開発マシンでは、値はokにバインドされます。ただし、アプリをリモートサーバーにデプロイすると、モデルバインディングが機能しなくなり、アプリを再び機能させる唯一の方法は、プロパティタイプをDoubleからstringに変更することです。
これが私のモデルです:-
public class HomeViewModel
{
public Double Latitude { get; set; } //form value binds locally but does not bind on remote server
public Double Longitude { get; set; } //form value binds locally but does not bind on remote server
public string LatitudeStr { get; set; } //form value binds
public string LongitudeStr { get; set; } //form value binds
これが私の見解です:-
@using (Html.BeginForm("Index","Branches", FormMethod.Post, new { ID = "frmSearch", data_transition = "none" })){
@Html.HiddenFor(model => model.Latitude, new { id = "hdnLat" })
@Html.HiddenFor(model => model.Longitude, new { id = "hdnLong" })
これが私のコントローラーです:-
[HttpPost]
public ActionResult Index(HomeViewModel model)
{
フォームを送信した後にページを調べると、input-validation-errorクラスが非表示の要素に追加されていることがわかります。
Firebugの投稿情報を見ると、値が投稿されていることがわかります。
上記はローカルでは正常に機能しますが、リモートサーバーからは実行されません。
私が見る限り、ローカルおよびリモートで実行すると、まったく同じ値がサーバーにポストバックされます
誰かがこれに光を当てることができれば素晴らしいでしょう