在没有布局的情况下在MVC 3中显示页面

时间:2011-05-20 06:29:32

标签: c# .net asp.net-mvc-3

我有一个生成可打印表格的页面。我需要在没有周围_Layout页面的情况下显示此页面,以确保打印机友好性。

我将如何做到这一点?

5 个答案:

答案 0 :(得分:116)

假设您使用剃刀视图引擎(您提到了布局,而不是母版页

@{
    Layout = null;
 }

实际上你应该使用剃刀视图引擎,但无论如何,想法很简单。不要在aspx视图中指定(删除)母版页文件引用并删除所有ContentPlaceHolders,直接在页面中写入所有内容。或者,如果您因某些原因不希望删除它们,还有另一种方法。制作PrintMaster.master母版页,其中只包含ContentPlaceHolders。

答案 1 :(得分:2)

创建视图时,您可以更改母版页。如果取消选中该复选框,则视图不会显示母版页,您可以修改整个页面。

答案 2 :(得分:1)

如果您需要支持在页面上显示结果以及具有可打印视图,您可以创建第二个视图(例如名为PrintView),该视图不使用页面布局并调用{{1}来自你的控制器。

答案 3 :(得分:1)

While creating a new view, you can uncheck the use layout checkbox. 
This will create you a view with layout as null.

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Test</title>
</head>
<body>
    <div> 
    </div>
</body>
</html>

答案 4 :(得分:0)

标准打印样式操作可以通过多种方式完成。 1.使用带有打印按钮的不同视图,将布局设置为null,假设您可以映射到剃刀。

要使用CSS执行此操作 - 您需要一个单独的css文件,该文件将在打印时加载并隐藏您的母版页项目。查看有关关键字的各种文章 css媒体印刷 例如: http://webdesign.about.com/cs/css/a/aa042103a.htm

这使用

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

这里的密钥是media =“print”,它将仅在打印时使用该css。