2009-04-07 105 views
1

我在一個項目上工作,我想要一個打印版本的視圖我有。有沒有人已經這樣做,並有一些技巧如何做到這一點? (使用什麼類型的路由等)Howto創建(基本控制器)打印機友好版本?

我正在考慮製作PrintController。在PrintController中的方法的ActionResult中,返回具有特定主頁的View。

public ActionResult Index(string printView) 
{ 
    return View(@"~/Views/Product/Index", "PrinterFriendly_MasterPage"); 
} 

斯蒂芬·沃爾特不建議來使用重定向的(tip #24)這樣的,因爲它不是MVC本來是的方式。

在視圖上將會有一個鏈接打印該頁面,例如:
- 正常鏈接:www.example.com/product;
- print link:www.example.com/ print/product;

我不想使用JavaScript或AJAX。只顯示與用戶正在觀看的視圖相同的視圖,僅使用不同的主頁面(其將具有特定的打印樣式表)。


感謝您的快速回復,但我不完全是我想要的方式。我已經有用於打印的特定css文件。

查看下面的荷蘭網站,例如Normal ViewPrint View

我想要一個鏈接顯示相同的視圖,但與另一個母版頁。在另一個主頁中,我包含用於打印的css文件。

因此,用戶從瀏覽器菜單中獲取與「打印預覽」幾乎相同的視圖。

這樣做的好處是,它將符合WCAG標準。

回答

1

不要創建單獨的視圖。只需在鏈接中使用media = print創建一個特定於打印的CSS文件,並且打印時瀏覽器應自動使用此CSS。

1

爲什麼不只是在你的CSS鏈接中指定「媒體」屬性?

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

這樣,您可以使用1個母版頁,但同時具有不同的屏幕視圖和打印視圖。