私は、ASP.Net MVC Web サイトのウィザードのようなセクションに取り組んでいます。これにより、ユーザーはデータを投稿し、次のページに前方または後方にリダイレクトできます。つまり、ユーザーが [次へ] をクリックすると、保存されて次のページに移動します。彼らが反撃すると、保存して前のページに移動します。フォームの非表示フィールドを使用して、参照ページの値を渡しています。私の質問は、参照ページの値を格納する適切な場所に関するものです。強く型付けされたビューを使用しています。このページのビュー モデル クラスに参照ページ フィールドを追加する必要がありますか、それとも ViewData の使用が許容されるケースですか?
1 に答える
これを質問してから 2 週間以上経ちましたが、回答がありませんでしたが、その間に ASP.Net MVC に関する知識が増えたので、自分の質問に答えます。まず、この質問をする前に、ViewBag ではなく ViewModel のみを使用していたため、本能的に ViewModel を使用していましたが、渡す必要がある情報、つまり参照 URL が適切ではないように思われました。それは私のデータの一部ではなく、ナビゲーションを支援する単なる「ヘルパー」情報であったため、モデルに属していたものです。参照 URL を ViewModel に入れることをためらったのは、当時、私の View Models がドメイン モデル クラスを完全に組み込んだコンテナ クラスであり、ビューの懸念がドメイン モデルを汚染してはならないため、そうしたくなかったからだと思います。参照 URL をドメイン モデルに入れます。
それ以来、「ドメイン モデルのコンテナーとしてのビュー モデル」アプローチをやめ、代わりにドメイン モデルにマップするカスタム ビュー モデルを使用しますが、URL の参照など、ドメイン モデルに存在しない情報を含めることもできます。私と同様の質問をしたこの投稿を見つけたとき、私はすでにこの結論に達していました。
この投稿は、私が正しい軌道に乗っていることを強調し、ビュー モデルの役割に関する現在の考えを簡潔にまとめています。「それがビュー モデルです。ビューの要件を満たすために具体的に定義するクラスです」