2011-02-10 19 views
5

私はASP .NET MVCを使用し始めます。そして、私が見るように、表示するデータを渡す2つの方法があります。厳密に型付けされたビューと動的な型付けされたビュー

  1. Viewを継承し、ビューに動的オブジェクトを渡すビューです。
  2. 厳密に型指定されたViewを作成し、ViewPageを継承し、カスタムビューモデルクラスのインスタンスをビューに渡します。

それぞれの賛否両論は何ですか?

+0

「どちらが良いですか」と尋ねるのではなく、賛否両論を尋ねるときは、それほど議論の余地がないと思います。 –

答えて

4

できるだけ厳密な型のビューを使用して、モデルとしてそのビューに渡されるデータが正確にわかるようにしてください。ダイナミックを使用すると、実際にデータが何であるかを常に知る必要はなく、状況が変わるとランタイムエラーにつながる可能性があります。

+0

強く型付けされたビューの他の利点は、ビューのコンパイル時のコード検証とインテリセンスです。 –

3

JOSH DOOLANによれば、厳密に型指定されたビューは、複雑なタイプのデータを扱う場合に、より便利です。 は、例えば、私は人のクラスを持っている:

Public Class Person 

{ 
String _name; 
String _age; 
Pet _pet; 

// gets & sets below..etc 
} 

イベントであなたが(「新しい」人を作成する)フォームに、この特定のクラスをバインドしたいユースケースを持っている場合は、あなたが複雑なタイプのペットに着くまで、それはかなりまっすぐ進むでしょう。

人物を特定のビューに強く入力してから、そのビュー内に厳密に「ペット」と入力したテンプレートまたはビューファイルを呼び出します。複合型をテンプレート/ビューに割り当てるには、html mvcヘルパーHtml.ControlForを使用するだけです。あなたが使用するテキストボックスのような単純なHTMLコントロールを扱っていないので、この特定のインスタンスでは:

Html.EditorFor(model => model.Pet, "Pet") 

ここにあなたが見ることができる、あなたは強くにビューモデル「ペット」のインスタンスを入れています元のビューフォームがサブミットされたときに、完全にデータが埋め込まれたビューモデルを返すために、「ペット」と呼ばれる型付きビューがあります。

これは、より複雑で大規模なWebサイトでデータを簡素化してカプセル化する非常に強力な方法です。

関連する問題