web-dev-qa-db-fra.com

ViewStart et Layout - quelle est la différence?

Je viens de commencer à lire le livre ASP.NET MVC 4 et j'ai une question. Dans la partie Razor, l’auteur a déclaré que si je ne définissais pas la variable Layout dans le fichier View.cshtml, elle rechercherait par défaut un _ViewStart.cshtml, mais dans une autre partie, il utilisait _Layout.cshtml dans Views/Shared, je ne l’ai pas. .

Si je suis comme ça dans View.cshtml:

@{
     Layout = null;
 }

Cela indique que cette vue n'a pas de présentation, mais si je la fais comme ceci:

@{

 }

Cela fera donc que la vue recherchera un fichier _ViewStart.cshtml ou _Layout.cshtml?

16
CSharpBeginner

Fondamentalement, par défaut, nous avons la disposition principale dans Vues >> Partagée >> _Layout.cshtml et cette chose est définie dans _ViewStart.cshtml celle qui est notre disposition par défaut.

Lorsque nous créons une vue avec une disposition principale par défaut, sa disposition principale est _Layout.cshtml , mais nous pouvons la modifier de _ViewStart.cshtml  

Quand on écrit:

@{
     Layout = null;
 }

à notre avis, nous disons que cette vue n’a pas de mise en page principale; elle est utilisée lorsque nous créons principalement une vue partielle ou une vue autonome sans mise en page principale.

Si vous ouvrez _ViewStart.cshtml par défaut, ceci est écrit:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

et nous pouvons le changer si nous voulons.

Vous pouvez également modifier une vue principale spécifique en y inscrivant l'URL de la vue de présentation principale:

@{
        Layout = "~/Views/Shared/_CustomMasterLayout.cshtml";
 }
18
Ehsan Sajjad

Vous pouvez le définir par défaut (comme il l'a fait dans le deuxième exemple) ou créer votre propre "personnalisé" (ce qu'il fera probablement à partir de maintenant).

L'auteur ira probablement dans plus/mieux les détails une fois que vous aurez appris un peu plus (créer des feuilles de mise en page/etc).

1
jbutler483