web-dev-qa-db-ja.com

Asp.netMVCの部分ビューのポイントは何ですか

ビューと部分ビューの間に実際の違いはないように見えることに気づきました。たとえば、ビューを作成できますが、を使用して部分ビューとしてレンダリングできます。

@Html.Partial("ViewName")

または、そのアクションがそれを次のように返すように指定することによって

return PartialView();

逆の場合もあることに気づきました。つまり、部分ビューを作成することはできますが、全体ビューとして返されると、ビューのデフォルトのレイアウトで表示されます。

私の質問はこれです-VisualStudioで新しいビューを追加するとき、部分的かどうかのビューを作成するオプションが与えられます。ビューはとにかく部分ビューと完全ビューの両方としてレンダリングできるので、これは冗長ではありませんか?

21
x1886x

違いはありません-それは本当です。ただし、「部分ビュー」と言うと、すべてのチームメートは、Webサイト全体の多くの場所で使用される再利用可能なビューを意味することを理解しています。

13
Andrei

そこにisビューと部分ビューの違いがあり、違いは技術的なものではなく、それらの使用法に関するものです。

ビューは、アプリケーションの全ページとして使用することを目的としており、レイアウト_<html>_および_<title>_が必要です。部分的なビューは、他のビューの再利用可能な部分に似ています。パーシャルはページ全体を表すのではなく、他のビューに挿入されます。

技術的な観点から、return View("SameView");はレイアウトページを含むビューをレンダリングし、return PartialView("SameView");によって同じビューを返すとコンテンツがレンダリングされますが、レイアウトページのコンテンツは省略されます。

17
archil

部分ビューは、ASP.NETWebFormsのユーザーコントロールと考えてください。機能を一元化する場合は部分ビューを使用するため、Webサイトの多くの部分で使用できます。これが部分ビューの目的です。

私があなたの質問に答えたことを望みます。

5
scubaFun

実際には、それらの間に違いはありません。ただし、htmlオブジェクトを部分ビューとして認識すると、それは自己完結型のオブジェクトと見なされ、Webパーツ/ユーザーコントロールのようにさまざまな場所で提供され、軽量でもあります。

2
Preeti Singh

2つのこと。まず、ある程度あなたは正しいです。しかし、再利用可能なコードを分離することは、より意味論的なことです。また、たとえば次の場合にも便利です。ダイアログを表示する必要があるが、ボタンのクリックなど、ユーザーがページを操作した場合に限ります。部分ビューを使用すると、ページの読み込み時にこのマークアップをページに表示する必要がないため、ファイルサイズが小さくなります。部分ビューでマークアップ/コードを記述する場合、<html></html>コードブロック全体を実行する必要はありません。代わりに、<div></div>または必要なものを作成するだけです。

VisualStudioでビューを作成する方法について少し説明します。いいえ、部分ビューを作成するときにマスターレイアウトファイルを使用しないため、冗長ではありません。

2
reggaemahn

メインページ(親ページ)の一部ページとして使用し続ける部分ビュー。
部分表示とはどういう意味ですか?実際、メインページには、次のようなすべてのHTMLページ属性があります。
html lang = "en"

題名
メタ

しかし、部分的に見ると、上記のすべての属性があるわけではありません。

部分ページの機能を見つける:
1。部分的なページは少し待って、任意のビューに収まります。
2。これは、再利用可能なコンポーネントとして使用されます。
3。部分ビューは、ビュー(親ビューまたはページ)内にレンダリングされます。

ASP.Netのバックグラウンドを持っているすべての人にとって、部分的なビューをユーザーコントロールとして理解できます。

ありがとう[email protected]

1
Afazal

かなり遅いですが、同じ質問を持つ人には役立つかもしれません。部分ビューは、ユーザーの選択に基づいてビューをロードするシナリオで役立ちます。

たとえば、親ビューに、ユーザーが実行できる3つの操作を表示するドロップダウンがあるとします。ユーザーの選択に基づいて、親ビュー自体に非表示のDIVを保持する代わりに、部分ビューを親ビューにロードして、親ビューを明るくすることができます。これは、DIVに基づくそのようなユーザー選択が複数ある場合に非常に役立ちます

0
bala

特に質問に答えるために、Visual Studioで新しいビューを追加すると、ダイアログでの選択に基づいて、開始点として非常に基本的なマークアップが生成されます。

[部分的]チェックボックスと[レイアウト]チェックボックスのさまざまな組み合わせに対して、Visual Studio 2010(VB.NET)で生成されたマークアップは次のとおりです。

# "Create as a partial view" unchecked
# "Use a layout or master page:" unchecked

@Code
    Layout = Nothing
End Code

<!DOCTYPE html>

<html>
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title>MyView</title>
</head>
<body>
    <div>

    </div>
</body>
</html>
# "Create as a partial view" unchecked
# "Use a layout or master page:" checked

@Code
    ViewData("Title") = "MyView"
    Layout = "~/ThePath/ToThe/Layout.vbhtml"
End Code

<h2>MyView</h2>
# "Create as a partial view" checked
# "Use a layout or master page:" greyed out

# returns an empty file

ご覧のとおり、バックグラウンドで特別なことが行われたり、どこかの秘密ファイルに特別なプロパティが設定されたりすることはありません。オプションは、ページのデフォルトのマークアップを取得するために使用されます。これが実用的かどうかは純粋に主観的です!

0
D-Jones