web-dev-qa-db-ja.com

ASP.NET MVCの厳密に型指定されたビューとは

ASP.NET MVCの厳密に型指定されたビューとは何ですか?

41
Fraz Sundal

System.Web.Mvc.ViewPage<TModel> から派生するaspxページです。このビューはTModel型に強く型付けされていると言われています。この結果として、このビュー内にはTModel型の Model プロパティがあり、次のようなモデルのプロパティに直接アクセスできます。

<%= Model.Name %>
<%= Model.Age %>

aspxページが System.Web.Mvc.ViewPage から派生したかのように、ViewDataから値を取得する必要がある場合、ビューはTModelタイプを認識しなくなります。

<%= (string)ViewData["Name"] %>
<%= (int)ViewData["Age"] %>

さらに悪いことに:

<%= ((SomeModelType)ViewData["model"]).Name %>

そのようなコードにはコンパイル時の安全性はありません。

また、厳密に型指定されたパーシャル(ASCX)に対応する ViewUserControl<TModel> があります。

34
Darin Dimitrov

厳密に型指定されたビューは、一般的なViewData構造を使用する代わりに、特定のタイプのモデルオブジェクトのレンダリングに使用されます。データのタイプを指定することにより、モデルクラスのIntelliSenseにアクセスできます。

11
jco

これは、モデルとして渡されるオブジェクトのタイプを指定するビューです。したがって、ViewPageを継承するビューの代わりに、ViewPage<T>を継承します。ここで、Tはタイプですモデルの。

3
David M