2011-01-17 9 views
0

上の他の入力を検査するASP.Net MVCヘルパーを作成することができます私は、次のシグネチャを持つ拡張ヘルパーを作成したいと思います: BindMissingForをMvcHtmlStringはどのように私は、フォーム

  • のpublic static(このHtmlHelperの HtmlHelperの、式>式)

このメソッドは、提供されている式モデルを反映し、フォームにバインドされていないバインド可能なプロパティを探します。

ユースケースは、ユーザーが自分のモデルの一部としかやり取りできないビューをいくつか持たせたいと思っています。しかし、私はモデル全体を複数のビューの間で持続させたい(ウィザード)。

私の現在の解決策は、表示したくないフィールドごとに非表示入力を使用することです。おそらくこの拡張メソッドでも同じことをやっていきますが、私はコピー/貼り付けの代わりに私の仕事をしたいと思います。

HtmlHelper拡張メソッド内から入力/選択の現在のフォームを検査する方法はありますか?

答えて

1

引数として渡さない限り、他のフォームフィールドを検査するなど、ビューの他の部分で何が起こるかを知るヘルパーはありません。また、が意味することはあまり明確ではありません。まだフォームにバインドされていないバインド可能なプロパティーを探します。ウィザードで永続状態を維持するには、現在MVC FuturesアセンブリにあるHtml.Serializeヘルパーを参照してください。このヘルパーの背後にある考え方は、フォーム内の隠しフィールドとしてモデルオブジェクト([Serializable]と表示)をシリアライズし、[Deserialize]属性を使用してコントローラアクションでその値を戻すことができるということです。その背後では、WebForms ViewStateを使用します。それを暗号化することもできます。これは、複数のページ間でクライアント上で状態を持続させるための良い方法です。

+0

ありがとうございます。「バインド可能なプロパティを探す」とは、読み取り専用ではなく、まだフォーム上にないプロパティを意味していました。 –