2011-04-06 61 views

回答

7

我會這樣做只是通過CSS,而不是任何與MVC。

只需爲打印定義一個單獨的樣式表。例如

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

做這種方式的優點是:

  • 這就是CSS是爲那些渲染相同內容不同爲不同的設備
  • 更少的工作,你不必維護2 MVC瀏覽量
  • 用戶更容易,不管他們在哪個頁面上,他們只需按下瀏覽器上的打印按鈕就可以工作,他們不必單擊單獨的打印機友好版本鏈接。
  • 如果您不想在CSS中打印您定義的徽標或菜單,並且所有頁面都將應用該樣式,則您對CSS所做的更改將在站點範圍內進行,例如在CSS中進行打印。
+0

如何我可以定義打印友好的CSS? – DotnetSparrow 2011-04-06 09:01:27

+2

查看mkeats的答案,瞭解如何 – Daveo 2011-04-06 09:05:12

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> 

例print.css文件:

#pageHeader { 
    display: none; 
} 

看一看這個好 '相隔名單' 上的CSS文章打印:http://www.alistapart.com/articles/goingtoprint/

+0

@mkeats:瀏覽器如何在鏈接上選擇打印友好的樣式表單擊 – DotnetSparrow 2011-04-06 09:05:07

+3

瀏覽器將使用screen.css文件進行渲染以進行正常瀏覽。當有人打印或進行打印預覽時,自動渲染將隨着print.css文件自動渲染。你不需要做任何事情來切換不同的文件。 – 2011-04-06 09:07:48

+0

@mkeats:我可以保留css文件的名稱,只需添加/更改媒體類型? – DotnetSparrow 2011-04-06 09:31:33