如何创建(基本控制器)打印机友好版本?

时间:2009-04-07 18:36:08

标签: css asp.net-mvc

我正在开发一个项目,我想拥有一个打印机友好版本的视图。有没有人已经做过这个并有一些提示如何实现这一目标? (使用何种路由等)

我正在考虑制作一个PrintController。在PrintController中的方法的ActionResult中返回具有特定母版页的视图。

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

Stephan Walter并不建议使用这种重定向(tip #24),因为它不是MVC的意图。

在视图上会有一个打印页面的链接,例如:
- 普通链接:www.example.com/product;
- 打印链接:www.example.com/print/product;

我不想使用javascript或AJAX。只显示用户正在观看的相同视图,只显示不同的母版页(具有特定的打印样式表)。


感谢您的快速回复,但我并不是我想要的方式。我已经有了特定的css文件用于打印。

请查看以下荷兰语网站,例如Normal ViewPrint View

我希望有一个链接显示相同的视图,但有另一个母版页。在另一个母版页中,我包含了用于打印的css文件。

因此,用户从浏览器菜单中获取与“打印预览”几乎相同的视图。

这样做的好处是,它符合WCAG标准。

3 个答案:

答案 0 :(得分:1)

如何创建一个将隐藏导航的打印css以及您不希望在打印件上显示的任何其他内容。

有关详细信息,请参阅http://meyerweb.com/eric/articles/webrev/200001.htmlhttp://www.alistapart.com/articles/goingtoprint/

答案 1 :(得分:1)

不要创建单独的视图。只需在链接中使用media = print创建特定于打印的CSS文件,浏览器在打印时应自动使用此CSS。

答案 2 :(得分:1)

为什么不在css链接中指定“media”属性?

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

这样你就可以使用1个母版页,但屏幕视图和打印视图都不同。