0

asp.net mvc フレームワークを使用して小さなアプリケーションを構築します。一つ質問があります。アプリの n 層構造 (コントローラー -> サービス層 -> リポジトリー層) を構築し、ユーザーからデータを収集するためのウィザードを作成しました。リポジトリ (データ層) からの一部のデータは、次のステップのために保存する必要があります (たとえば、ユーザーがウィザードの [戻る] ボタンを押したとき)。これはユーザーが入力したデータではありません。何らかの理由で、このデータをリポジトリからキャッシュする必要があります (戻るボタンを押したときに表示するため)。私のアプリケーションでは、このデータをセッションで保存しますが、誰がこのデータを保存する必要があるかわかりません。一方で、それはサービス レイヤーである必要があります。また、sessionstatewrapper を彼に送信する必要があります。しかし、アプリケーションのビジネスロジックの場合-サービスレイヤーの場合、ウィザードからすべてのデータを送信し、このデータをいくつかのステップで分離する必要があります。これは、データを収集してこのデータを処理するための単なる異なるビューです-それはプレゼンテーションレイヤー(コントローラーなど)の作業です。ヘルプのアイデアはありますか?

PS私の英語でごめんなさい=)

4

4 に答える 4

0

ウィザードを介してデータをやり取りする場合、私が最初に考えるのはTempDataです。これはまさにその用途の1つです。次の(または前の)ページにのみ、すべてのステップで何かを永続化する必要があります。もちろん、TempDataはSessionを使用するため、1日の終わりに、Sessionを直接使用する必要がある場合は、常にオプションです。

これは、コントローラーが管理する必要があるタイプのことです。サービス層とリポジトリ層は、必要なデータをコントローラーに提供する必要がありますが、コントローラー自体が、ウィザード全体でこのデータの永続性を管理している必要があります。ウィザードページの「データの表示」として見ると(それがデータを表しているかどうかはわかりませんが、そうである可能性があります)、システムのどの層が責任を負うべきかがより明確になる可能性があります。それ。

于 2009-08-13T18:04:09.210 に答える