Версия для печати ASP.NET MVC 3 - PullRequest
15 голосов
/ 06 апреля 2011

Я хочу создать дружественную для печати версию своего ASP.NET MVC 3 view, как я могу это сделать?Кроме того, что, если мне нужно сделать печатную версию нескольких частей представления?

С уважением.

Ответы [ 2 ]

18 голосов
/ 06 апреля 2011

Я использую те же представления, но у меня есть 2 CSS-файла (один с media="screen", а другой с media"print").

В файле CSS для печати я использую CSS, чтобы скрыть все нерелевантные элементы DOM, используя display:none;.

Пример MVC View:

<html>
<head>
    <link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
    <link rel="stylesheet" type="text/css" media="print" href="print.css" />
</head>
<body>
    <div id="pageHeader">This will not be shown in print - menubar, etc.</div>
    <h1>Title</h1>
    <p>Text</p>
</body>
</html>

Пример файла print.css:

#pageHeader {
    display: none;
}

Взгляните на эту хорошую статью "A List Apart" на CSS для печати: http://www.alistapart.com/articles/goingtoprint/

7 голосов
/ 06 апреля 2011

Я бы сделал это только через CSS, а не с MVC.

Просто определите отдельную таблицу стилей только для печати. Например

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

Преимущество такого подхода:

  • Это то, для чего CSS предназначался для разного отображения одного и того же контента на разных устройствах
  • Меньше работы, вам не нужно поддерживать 2 вида MVC
  • Легче для пользователя, независимо от того, на какой странице он находится, он просто нажимает кнопку печати в своем браузере, и он будет работать, им не нужно нажимать отдельную ссылку для печати. ​​
  • Изменения, которые вы вносите в CSS, будут распространяться на весь сайт, например, в вашем CSS для печати, если вы не хотите печатать логотип или меню, вы определяете его по одному в своем CSS, и все страницы будут применять этот стиль.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...