1

ここの人々がこれを適切に行う方法についていくつかのアイデアを提供してくれることを願っています.

現在、画面のレンダリングに使用する ViewModel があります。ビュー モデルには、実際にはいくつかのドメイン モデルのフラット化されたデータが含まれています。基本的な検証を行う属性で ViewModel を装飾しましたが、実際の検証作業はサービス レイヤーで行われます。この問題は、サービス層で検証エラーが発生した場合に発生します。プロパティの名前 (つまり、UserName) が ModelState のエントリ (つまり、RegistrationViewModel.UserName) と一致しません。

これを処理する方法についての推奨事項はありますか?

前もって感謝します!

スティーブン

4

2 に答える 2

1

あなたの質問に対する答えではないかもしれませんが、これは私が通常これにアプローチする方法です:

ドメイン モデルでは、検証フレームワークは使用しません。ユーザー フレンドリーなエラー メッセージを表示するためにも使用しません。モデルが有効な状態であることを常に確認します。(プロパティ セッターで) 無効な値が設定されると、例外がスローされます。ドメイン オブジェクトのコンストラクターを使用して、既定値とコンストラクター パラメーターを使用して、インスタンス化時に常に有効な状態にします。モデルが有効な状態にあることを常に確認できるため、非常にシンプルですが強力です。完全に確実にするために、ドメイン オブジェクトの単体テストを行う必要があります。このアプローチは、orm でもうまく機能します。

したがって、ビューモデルで流暢な検証のみを使用して、ユーザーフレンドリーなメッセージを提供します。

于 2011-10-28T14:32:45.690 に答える
0

これは最善の解決策ではありませんが、最終的には基本的なクライアント側の検証に依存して、基本的なフィールドの検証を表示しています。それを過ぎてサービスで検証されたものはすべて、検証の概要に表示されます。

于 2011-11-05T17:48:56.220 に答える