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

我有一个页面,生成一个可打印的表格。 我需要显示这个页面,而不用我的周围的_Layout页面,打印机友好。

我怎么去做这个?

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

 @{ Layout = null; } 

那么其实你应该使用razor视图引擎,反正,想法很简单。 不要在你的aspx视图中指定(删除)主页面文件引用,并删除所有ContentPlaceHolders,直接在页面中写入所有内容。 或者,如果您不希望因某种原因将其删除,还有其他方法。 使PrintMaster.master母版页,除了ContentPlaceHolders什么都不包含。

当你创build视图时,它允许你改变主页面。 如果取消选中该checkbox,则视图不带有母版页,您可以修改整个页面。

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

 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> 

标准的印刷风格动作可以通过多种方式完成。 1.使用不同的视图和打印button,将布局设置为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。