web-dev-qa-db-ja.com

ASP.NET MVCのビューとパーシャルビューの違いは何ですか?

ASP.NET MVCのビューとパーシャルビューの違いは何ですか?

一見、両方の必要性は私には自明ではないようです。

38
52d6c6af

理論的には、答えは次のとおりです。部分ビューは、メインビュー内に埋め込んだ「サブビュー」です。サイドバーなど、複数のビューで再利用できるものです。

実際には、答えは次のとおりです:非常に少ない

理論的には、部分ビューは標準ビューよりも軽量ですが、「通常の」ビューをRenderPartialに渡してもまったく問題はなく、パフォーマンスはまったく同じです。 ASP.NET WebFormsのUserControlsでできるようなテンプレート化されたコンテンツを提供するために、マスタービューを参照させることができるため、通常の.aspxビューを「部分」ビューとして頻繁に使用します。 こちら を参照してください。

部分ビューは、ポータル上のWebパーツに似ています。完全に自己完結型のオブジェクトです。レイアウトがシンプルで静的な場合、または標準ビューに<html>タグと<body>タグがない場合にIntellisenseエラーが発生する場合は、これらを使用してください。

42
Aaronaught

それはそのように機能します:

  • ビューのコンテンツは、/ Shared/_Layout.cshtmlの@RenderBody()に入ります。

  • ビューのコンテンツのみを返すPartialView()

10
ThiagoVBDiniz

ビューは、結果として表示されるページの一般的な結果です。マスターページを除く最上位のコンテナです。一方、部分ビューは、異なるページで再利用したり、ページ内で複数回再利用したりできるコンテンツの小片に対するものです。

Webフォームを使用している場合、ビューはWebコンテンツフォームに似ていますが、部分ビューはユーザーコントロールのようなものです。

6
Tim Hoolihan

Webフォームのバックグラウンドから来ている場合は、PartialViewをユーザーコントロールと考えてください。

3
LiamB

StackOverflow.comサイトを見てください。メインサイト(ビュー)には、次のようなコンポーネントが含まれています。

  • タグ
  • 関連した
  • 広告

したがって、タグ、関連、広告などをPartialViewsとして構成できます。これの利点は、PartialViewsがすべてのサイトを再作成する代わりに、OutputCacheによって単純にキャッシュできることです:パフォーマンスの向上。

3
Dariusz

Webフォームのコントロールのような部分的なビューを考えてください。アイデアは、部分的なものは再利用可能です。

2
Israfel