2011-08-25 7 views
7

asp.net mvcをもっとよく学ぶために、側面のペットプロジェクトで作業していました。私の質問はmvcのviewmodelsについてです。私は、コントローラがビューとモデルの間のやりとりを処理することになっていることを理解しています。モデルの情報を結合してビューに渡すためのビューモデルクラスを作成しなければならないような気がします。asp.net mvcでたくさんのビューモデルを使用することは悪い習慣です

この悪い習慣ですか?他の場所でロジックをもっと増やし、ビューモデルを減らすべきでしょうか?

現時点では、ほぼすべての主な見解のほぼすべてのビューモデルがあります。しかし、私はビューがモデルに直接アクセスするのを間違いなく望んでいます。

答えて

6

いいえ、すべてのビューは強く型付けされている必要があります。したがって、ビューごとに1つのビューモデルがベストプラクティスです。 Hereはviewmodelsについてのとても良い記事です。

+0

偉大な答え。その記事はそれをうまくまとめた。それは基本的に私が現在やっていることです。ありがとう。 – Deekane

2

あなたが使用しているビューモデルの数が増えるほど良いです。ビューモデルを使用すると、モデルのさまざまなタイプのデータを含むことができる単一のオブジェクトを作成できます。これらはテンプレートを作成するときに非常に便利です。また、これはJQueryとAjaxを使用する場合、コントローラにデータを渡してからDOMに直接渡すことができるので非常に便利です。私の意見では、あなたが望むだけ多くのビューモデルを使用してください。

もう1つのことは、モデルのデザインを改善することです。私は個人的には、SQLデータベースのように私のモデルを構築し、正規化フォームに従ってください。すでに持っているモデルに加えて、ビューごとに新しいビューモデルを作成する必要はありません。使用しているモデルの一部ではないビューに情報を渡す必要がある場合は、ViewDataまたはViewBagを使用します。これらはオブジェクトとして渡されるため、適切なクラスにキャストする必要があります。

0

これは何も悪いことではありません。あなたのビューモデルは、よりよく見えるように近くにあります。

モデルでは必ずしもViewと一致しないため、ViewModelクラスを使用します。

0

偉大な答えがここにあり、多くのビューモデルが問題ではない理由についての私の見解です。 ViewModelsは、純粋なデータアクセスオブジェクトまたはドメインオブジェクトをプレゼンテーションレイヤーから分離し、それらのオブジェクトのダムダウンしたバージョンを使用して、ビューが消費する素晴らしい方法です。

あなたの意見は馬鹿だと私は個人的には、自分のドメインモデルをViewModelにマッサージして消費するようにしています。

-3

多くのビューモデルを使用すると、プロジェクトに混乱が生じます。コントローラーにTupleを作成して渡す方がはるかに優れています。