私は控えめなクライアントの検証を試しており、自分のシナリオでうまく動作するように苦労しています。MVC3 ViewModelsを使用したクライアントの検証
私の主な問題は、私のビューに厳密に型指定されたViewModelがあることです。このViewModelには、ドロップダウンを設定するために使用されるいくつかのコレクションが含まれており、フォームを編集したい実際のオブジェクトである追加のプロパティ(Personと呼ぶ)があります。
投稿を処理するコントローラのアクションによって、ViewModel全体がポストされていないPersonオブジェクトが取得されることが予想されます。だから私は使用することができていない:
@Html.TextBoxFor(m => m.Person.Name)
私は名前=「名前」ではなく「Person.Name」 を持つように入力制御を必要とするので、私は
@Html.TextBox("Name", m.Person.Name)
を使用することによって、これを修正することができます
しかし、結果の入力コントロールには、クライアントの検証に必要なdata- *属性がありません。 クライアントの検証を有効にして、ビューモデルを保持し、コントローラのアクションをすべて連携させる方法はありますか?側では
は、あなたがそれを破るように見える手で自分の<form>
タグを書き出す
@using (Html.BeginForm())
を使用する場合にのみ追加されたフォームフィールド上のデータ - *属性のように思える注意してください。
フォームヘルパーが必要ですか?あなたが概説されたシナリオでも
あなたはhtmlAttributesでTextBoxForの過負荷を使用してみましたか? @ Html.TextBoxFor(m => m.Person.Name、new {name = "Name")? –
私はそれがうまくいきたいです。新しい属性を追加できますが、name属性をオーバーライドすることはできません。私はその行動が変わるべきだと思うので、あなたはそれをちょうど行うことができます。 –