Версия для печати ASP.NET MVC 3
Я хочу создать удобную для печати версию ASP.NET MVC 3, как я могу это сделать? Кроме того, что, если мне нужно сделать версию для печати нескольких частей представления?
С уважением.
Ответы
Ответ 1
Я использую те же представления, но имею 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/
Ответ 2
Я бы сделал это только через CSS и не имел ничего общего с MVC.
Просто определите отдельную таблицу стилей только для печати. Например
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
Преимущество этого способа заключается в следующем:
- То, что CSS предназначалось для воспроизведения одного и того же контента по-разному для разных устройств
- Меньше работы, вам не нужно поддерживать 2 представления MVC
- Легче для пользователя, независимо от того, на какой странице они находятся, они просто нажимают кнопку печати в своем браузере, и это будет работать, им не нужно нажимать отдельную ссылку на версию для печати.
- Изменения, внесенные вами в CSS, будут доступны на веб-узле, например, в вашем CSS для печати, если вы не хотите печатать логотип или меню, которые вы определяете им в своем CSS, и все страницы будут применять этот стиль.