微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用MVC ViewContext呈现视图时指定样式表媒体

在我的剃刀观点中,我有

<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”样式表?

解决方法

打印时,查看用户代理(浏览器)应用打印样式表.

你可以改变
媒体=“打印”

media =“all”使其适用于所有媒体类型.

更新:

为什么不尝试在渲染时设置要应用的样式表?

尝试(RenderPartial)传递一些数据,以便您可以有条件地使用“打印”或“全部”.

更新2:HTML输出不会有所不同,只有应用于人类查看的实际呈现页面的CSS规则.或者您是否希望查看哪些样式应用于最终呈现的页面DOM而不是HTML的样子?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐