打印友好的ASP.NET MVC 3视图

Dot*_*row 15 css printing asp.net asp.net-mvc-3

我想创建我的ASP.NET MVC 3视图的打印友好版本我该怎么做?另外,如果我需要制作视图的几个部分的打印友好版本怎么办?

问候.

Mar*_*ats 18

我使用相同的视图,但有2个CSS文件(一个用于media="screen",另一个用media"print").

在打印CSS文件中,我使用CSS来隐藏所有不相关的DOM元素display:none;.

示例MVC视图:

<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>
Run Code Online (Sandbox Code Playgroud)

print.css文件示例:

#pageHeader {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

看看这篇关于CSS打印的'A List Apart'文章:http://www.alistapart.com/articles/goingtoprint/

  • 浏览器将使用screen.css文件进行渲染以进行正常浏览.当有人打印或打印预览时,borwser将自动使用print.css文件进行渲染.您无需执行任何操作即可在不同文件之间切换. (3认同)

Dav*_*veo 7

我只是通过CSS而不是与MVC有关.

只需定义一个单独的样式表,仅用于打印.例如

<link rel="stylesheet" type="text/css" href="print.css" media="print" /> 
Run Code Online (Sandbox Code Playgroud)

这样做的好处是:

  • 这就是CSS用于为不同设备以不同方式呈现相同内容的含义
  • 减少工作量,您不必维护2个MVC视图
  • 用户更容易,无论他们在哪个页面上,他们只需按下浏览器上的打印按钮即可工作,他们无需单击单独的打印机友好版本链接.
  • 您对CSS所做的更改将在网站范围内进行,例如在CSS中进行打印,如果您不想打印徽标或菜单,则在CSS中定义徽标或菜单,所有页面都将应用该样式.

  • 请参阅mkeats的答案,了解如何操作 (2认同)