使用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="print"media="all"将其应用于所有媒体类型。

更新

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

尝试(RenderPartial)传递一些数据,以便您可以有条件地使用"print"或"all"。

更新2:HTML输出不会有什么不同,只是应用于人类查看的实际呈现页面的CSS规则。或者您想看看样式应用于最终呈现的页面DOM,而不是HTML的样子?

相关内容

  • 没有找到相关文章

最新更新