web-dev-qa-db-fra.com

Quel est l'intérêt des vues partielles dans Asp.net MVC

J'ai remarqué qu'il ne semble pas y avoir de réelle différence entre une vue et une vue partielle. Par exemple, on peut créer un view mais le rendre sous la forme d'une vue partielle en utilisant

@Html.Partial("ViewName")

ou en spécifiant que son action le renvoie comme

return PartialView();

J'ai remarqué que l'inverse est également le cas: vous pouvez créer une vue partielle, mais si elle est renvoyée sous forme de vue complète, elle sera affichée avec la présentation par défaut des vues.

Ma question est la suivante: Lorsque vous ajoutez une nouvelle vue dans Visual Studio, vous avez la possibilité de créer une vue partielle ou non. N’est-ce pas redondant, puisqu’une vue peut quand même être rendue à la fois partielle et complète? 

21
x1886x

Aucune différence - c'est vrai. Mais lorsque vous dites "Vue partielle", tous vos coéquipiers comprennent que vous entendez des vues réutilisables qui seront utilisées à de nombreux endroits du site Web.

13
Andrei

est différence entre les vues et vues partielles, et la différence est plus à propos de leur utilisation, plutôt que technique.

View est conçu pour être utilisé comme une page complète de votre application. Il nécessite une mise en forme, <html> et <title>. Les vues partielles ressemblent davantage à des parties réutilisables d’autres vues. Les partiels ne représentent pas des pages complètes, ils sont insérés dans d'autres vues.

D'un point de vue technique, return View("SameView"); rend la vue, y compris la page de présentation, et le retour de cette même vue par return PartialView("SameView"); rend le contenu, mais omet le contenu de la page de présentation.

16
archil

Pensez aux vues partielles en tant que contrôles utilisateur dans ASP.NET WebForms. Les vues partielles sont utilisées si vous souhaitez centraliser une fonctionnalité afin qu'elle puisse être utilisée dans de nombreuses parties de votre site Web. C'est le but des vues partielles.

J'espère avoir répondu à votre question.

5
scubaFun

Pratiquement, il n'y a pas de différence entre eux. Mais lorsque vous reconnaissez un objet html en tant que vue partielle, il est considéré comme un objet autonome pouvant être servi à différents endroits, tout comme un composant WebPart/User-Controls et également léger.

2
Preeti Singh

Deux choses. Tout d'abord, dans une certaine mesure, vous avez raison. Mais c’est plus une chose sémantique que de séparer le code réutilisable. Il est également utile lorsque, par exemple, Dites que vous devez afficher une boîte de dialogue, mais uniquement lorsque l'utilisateur a une sorte d'interaction avec la page, comme le clic d'un bouton. Avec les vues partielles, vous n'avez pas besoin du balisage pour cela sur la page lors du chargement, ce qui réduit la taille du fichier. Lorsque vous écrivez du balisage/du code dans la vue partielle, vous n'avez pas à faire le bloc de code <html></html> entier. Au lieu de cela, vous créez simplement un <div></div> ou ce dont vous avez besoin.

Le peu de créer une vue dans Visual Studio. Non, ce n'est pas redondant, car lorsque vous créez une vue partielle, votre fichier de mise en page principal n'est pas utilisé.

2
reggaemahn

Vue partielle conservée pour être utilisée comme page partielle de la page principale (page parent).
Que veut dire vue partielle? En fait, dans la page principale, nous aurons tous les attributs de page HTML comme ci-dessous:
html lang = "en"
tête
Titre
méta
corps

Mais en vue partielle, nous n’aurons pas tous les attributs ci-dessus.

Trouver les fonctionnalités de la page partielle:
1. Une page partielle sera légère, attendez et s'intégrerez dans n'importe quelle vue.
2. Ceci utilisera comme composant réutilisable.
3. La vue partielle sera rendue à l'intérieur d'une vue (vue parent ou page). 

Pour tous ceux qui proviennent de l'arrière-plan ASP.Net, ils peuvent comprendre une vue partielle en tant que contrôle de l'utilisateur. 

Merci Afazal [email protected] 

1
Afazal

Assez tard, mais pourrait être utile pour quelqu'un avec la même question. Les vues partielles sont utiles dans un scénario dans lequel vous souhaitez charger une vue en fonction d'une sélection de l'utilisateur.

Par exemple, supposons qu'il y ait une liste déroulante dans la vue parent affichant trois opérations que l'utilisateur peut effectuer. En fonction de la sélection de l'utilisateur, une vue partielle peut être chargée dans la vue parent au lieu de conserver des DIV masquées dans la vue parent elle-même, rendant ainsi la vue parent claire. Cela sera très utile lorsque nous aurons plusieurs DIV basées sur des sélections d’utilisateurs.

0
bala

Pour répondre spécifiquement à votre question, lors de l'ajout d'une nouvelle vue dans Visual Studio, vous obtiendrez un balisage très basique, basé sur vos sélections dans la boîte de dialogue. 

Voici le balisage généré dans Visual Studio 2010 (VB.NET) pour les différentes combinaisons de la case "Partielle" et de la case "Mise en page":

# "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

Comme vous pouvez le constater, rien d’extraordinaire ne se passe dans l’arrière-plan, ni des propriétés spéciales définies dans un fichier secret quelque part. Les options sont simplement utilisées pour obtenir du balisage par défaut sur la page. Que ce soit pratique ou non, c'est purement subjectif!

0
D-Jones