在我的剃刀观点中,我有:
<link rel="stylesheet" href="css/print-layout.css" media="print" type="text/css" />
在打印页面时正确应用该样式表。
但是,在某些情况下,我使用以下内容将视图渲染为HTML字符串:
var razorViewEngine = new RazorViewEngine();
ViewEngineResult viewResult = razorViewEngine.FindView(context, viewName, "_Layout", false);
// ...
var writer = new System.IO.StringWriter();
var viewContext = new ViewContext(context, viewResult.View, viewData, tempData, writer);
viewResult.View.Render(viewContext, writer);
return writer.ToString();
执行此操作时,如何指定媒体类型,以便应用上面列出的“print-layout.css”样式表?
答案 0 :(得分:1)
打印时,查看用户代理(浏览器)会应用打印样式表。
你可以改变
media="print"
至
media="all"
让它适用于所有媒体类型。
<强>更新强>:
为什么不尝试在渲染时设置要应用的样式表?
尝试(RenderPartial
)传递一些数据,以便您可以有条件地使用“print”或“all”。
更新2: HTML输出不会有所不同,只有应用于人类查看的实际呈现页面的CSS规则。或者您是否希望看到 styles 应用于最终呈现的页面DOM而不是HTML的样子?