我正在开发一个项目,我想拥有一个打印机友好版本的视图。有没有人已经做过这个并有一些提示如何实现这一目标? (使用何种路由等)
我正在考虑制作一个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 View和Print View。
我希望有一个链接显示相同的视图,但有另一个母版页。在另一个母版页中,我包含了用于打印的css文件。
因此,用户从浏览器菜单中获取与“打印预览”几乎相同的视图。
这样做的好处是,它符合WCAG标准。
答案 0 :(得分:1)
如何创建一个将隐藏导航的打印css以及您不希望在打印件上显示的任何其他内容。
有关详细信息,请参阅http://meyerweb.com/eric/articles/webrev/200001.html和http://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个母版页,但屏幕视图和打印视图都不同。