在 MVC 3 中显示不带布局的页面

本文关键字:布局 MVC 显示 | 更新日期: 2023-09-27 17:56:56

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

我将如何做到这一点?

在 MVC 3 中显示不带布局的页面

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

@{
    Layout = null;
 }

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

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>

创建视图时,它允许您更改母版页。如果取消选中该复选框,则视图不附带母版页,您可以修改整个页面。

如果需要支持在页面上显示结果以及具有可打印视图,则可以创建不使用页面布局的第二个视图(例如名为 PrintView),并从控制器调用return View("PrintView");

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

要使用 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。