MVC3に付属している控えめな検証を利用して、jQuery Mobile (Alpha 3)ベースのASP.NET MVC 3アプリケーションを作成しています。ページに直接アクセスすると(URLにハッシュがない)、検証は完全に機能します。しかし、ページに移動すると、jQuery MobileはAjaxナビゲーションを使用して動的にロードし(Urlにハッシュを表示)、検証が機能しなくなります。ここでjQueryモバイルと目立たない検証
は、使用中のコードのサンプルです:
モデル:
[Required(ErrorMessage = "Missing value")]
[DisplayName("Property Display Name")]
public int? PropertyName { get; set; }
ビュー(レイザー):生成
@Html.LabelFor(model => model.PropertyName)
@Html.TextBoxFor(model => model.PropertyName)
@Html.ValidationMessageFor(model => model.PropertyName)
HTML:
<label for="PropertyName">Property Display Name</label>
<input data-val="true" data-val-number="The field Property Display Name must be a number." data-val-required="Missing value" id="PropertyName" name="PropertyName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="PropertyName" data-valmsg-replace="true"></span>
他のページが以前にロードされていて、HTML要素が一意のIDを持たない可能性があります。 Label、TextBox、およびValidationMessageのHTMLを生成するために独自のHTMLヘルパークラスをローリングする以外に、このシナリオを処理する方法はありますか?
私はJQMでのユニークIDを疑問に思い、それはまだ私を悩まします。 JQMの著者自身はそれについてあまり言わない。私は、IDが重複している既存のフッターの例を見ていました。私は2つの解決方法を見ています - あなた自身のIDの世話をするか、新しいページがロードされているときにDOMから離したページを強制的に削除してJQMキャッシングを破棄します - 'pagebeforecreate'イベント – naugtur
私たちは同様の問題を抱えていますが、それはまったく働いている。我々はjQ 1.5とjQM 1.03aを利用しています。ここに苦しんで.. – pavsaund