2009-04-07 43 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个母版页,但同时具有不同的屏幕视图和打印视图。