Версия для печати 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, и все страницы будут применять этот стиль.