web-dev-qa-db-fra.com

Affichage d'une page dans MVC 3 sans mise en page

J'ai une page qui génère un tableau imprimable. Je dois afficher cette page sans mon entourage _Layout page, pour une utilisation conviviale.

Comment pourrais-je procéder?

51
Andreas Eriksson

En supposant que vous utilisez le moteur de visualisation du rasoir (vous avez mentionné mise en page, pas page maître)

@{
    Layout = null;
 }

Eh bien, en fait, vous devriez utiliser le moteur de vue de rasoir, mais de toute façon, l'idée est simple. Ne spécifiez pas (supprimez) la référence du fichier de page maître dans votre vue aspx et supprimez tous les ContentPlaceHolders, écrivez tout le contenu directement dans la page. Ou il existe un autre moyen si vous ne souhaitez pas les supprimer pour une raison quelconque. Faire PrintMaster.master une page maître qui ne contiendra que ContentPlaceHolders.

117
archil

Lorsque vous créez la vue, elle vous permet de modifier la page maître. Si vous décochez la case, la vue ne contient aucune page maître et vous pouvez modifier la page entière.

2
Carles Company
While creating a new view, you can uncheck the use layout checkbox. 
This will create you a view with layout as null.

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Test</title>
</head>
<body>
    <div> 
    </div>
</body>
</html>
1
Nagaraj Raveendran

Si vous avez besoin de prendre en charge l'affichage des résultats sur une page ainsi que d'avoir une vue imprimable, vous pouvez créer une deuxième vue (nommée PrintView par exemple) qui n'utilise pas une mise en page et appelez return View("PrintView"); depuis votre contrôleur.

1
dariom

Une action de style d'impression standard peut être effectuée de plusieurs manières. 1. utilisez une vue différente avec un bouton d'impression qui définit la mise en page sur null en supposant que vous pouvez mapper au rasoir.

Pour ce faire avec CSS - vous voudrez un fichier CSS séparé qui sera chargé à l'impression et masquera vos éléments de page maître. Voir les différents articles sur les mots clés css media print par exemple: http://webdesign.about.com/cs/css/a/aa042103a.htm

Cela utilise

<link rel="stylesheet" type="text/css" href="print.css" media="print" />

avec la clé ici étant media = "print" qui utilisera ce css uniquement pendant l'impression.

0