2011-08-16 4 views
2

すべてのHTTP POSTデータをトリミング私はWebフォームを通じてユーザーによって提出されたすべてのHTTP POSTデータにトリム行う必要があります。グーグルでは、明らかに、すべてのHTTP POSTデータをトリミングするためのasp.netの組み込み機能はありません。のasp.net MVC3:

私が得ることができる最も近いが、ここで説明されているものです。ASP.NET MVC: Best way to trim strings after data entry. Should I create a custom model binder?

残念ながら、それは、ネストされたのviewmodels(他のViewModelの種類と性質を持つのViewModel)上では動作しません。

これを達成する最も良い方法は何ですか?私はすべてのViewModelのすべてのプロパティでproperty.Trim()を実行したくありません。ありがとうございました。

+0

カスタムモデルのバインダーは道のりです。ネストされたビューモデルでは機能しないのはなぜですか?あなたはそれを実装できるはずです。 – Yuck

+0

コードをもう一度見てみると、値の一部がRequest.Formから直接取得されていることがわかりました。そのため、一部のプロパティでは機能しません。私はこの質問を答えたと考えます。 – user895852

答えて

1

1つのオプションは、独自のIValueProviderを定義することです。 NameValueCollectionValueProviderから継承して、結果を取り除くときに結果をトリミングするTrimmedNameValueCollectionValueProviderにすることから始めます。次に、collectionとしてcontrollerContext.HttpContext.Request.Formが渡されるTrimmedFormValueProviderを定義します。