52 votes

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

J'ai une page qui génère un tableau imprimable. J'ai besoin de montrer cette page sans mon entourage _Layout page, pour faciliter l'impression.

Comment dois-je m'y prendre ?

120voto

archil Points 21369

En supposant que vous utilisez le moteur de vue Razor (vous avez mentionné mise en page pas page modèle )

@{
    Layout = null;
 }

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 au fichier de la page principale dans votre vue aspx et supprimez tous les ContentPlaceHolders, écrivez tout le contenu directement dans la page. Ou il y a un autre moyen si vous ne souhaitez pas les supprimer pour une raison quelconque. Créez PrintMaster.master page principale qui ne contiendra rien d'autre que des ContentPlaceHolders.

3voto

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>

2voto

Carles Company Points 2937

Lorsque vous créez la vue, elle vous permet de modifier la page maîtresse. Si vous décochez la case, la vue ne comporte pas de page maîtresse et vous pouvez modifier l'ensemble de la page.

1voto

dariom Points 3304

Si vous devez prendre en charge l'affichage des résultats sur une page en plus de la vue imprimable, vous pouvez créer une deuxième vue (nommée PrintView par exemple) qui n'utilise pas de mise en page et qui appelle return View("PrintView"); de votre contrôleur.

0voto

Adam Tuliper - MSFT Points 22478

Une action standard de type impression peut être réalisée de plusieurs manières. 1. utiliser une vue différente avec un bouton d'impression qui définit la mise en page sur null, en supposant que vous puissiez la mapper sur razor.

Pour faire cela avec CSS - vous aurez besoin d'un fichier css séparé qui sera chargé à l'impression et qui masquera les éléments de votre page principale. 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 pendant l'impression seulement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X