3

動的オブジェクトPageは、から継承するSystem.Web.WebPages.WebPageBase抽象クラスである にあります。WebViewPage

動的オブジェクトViewBagは にありますSystem.Web.Mvc.WebViewPage

どちらも、ビューからそのレイアウト ページに伝播できます。

私が見ることができる他の違いはViewBag、コントローラーで使用できるのに対しPage、ビューでのみ使用できることです。他に知っておくべき違いはありますか?

4

1 に答える 1

6

Page動的でViewBagあり、辞書のラッパーです。

PagePageDataディクショナリの動的ラッパーです。ディクショナリViewBagの動的ラッパーです。ViewData

違いについて話すとき、

ViewBagコントローラーとビューの間でデータを共有するために使用されます。または、メイン ビューと部分ビューの間でデータを共有するために使用することもできます。したがって、コントローラーとビューの両方から ViewBag にアクセスできます。

Pageは少し異なります。コントローラーからアクセスすることはできず、メイン ページと部分ページの間でデータを渡すために使用されます。

Pageメイン ビューと部分ビューの間でデータを渡すために使用する例を参照してください。

Main.cshtml

@{
   Page.Name = "Mark;
}

@RenderPage("DisplayName.cshtml"); // partial view

表示名.cshtml

<p>
Name: @Page.Name
</p>

RenderPageを使用して部分ビューをレンダリングしているわけではありませんが、部分ビューはメイン ビューと同じディレクトリにあります。

于 2012-05-30T13:20:04.203 に答える