2013-12-11 1 views
3

В моих взглядах бритв, у меня есть:Укажите таблицу стилей СМИ при рендеринге вида с 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(); 

При этом, как я могу указать тип носителя, так что «распечатку макета. css ", указанная выше, применяется?

+0

Чтобы уточнить: я хочу визуализировать представление так, как если бы это был тип экрана без экрана. – DaveD

ответ

1

Таблица стилей печати применяется при просмотре пользовательского агента (браузера).

Вы можете изменить media="print" к media="all", чтобы он применяется ко всем видам средств массовой информации.

Update:

Почему бы вам не попробовать настройки таблицы стилей, которые необходимо применить во время рендеринга?

Пробуйте (RenderPartial), чтобы передать некоторые данные, чтобы вы могли условно использовать «печать» или «все».

Update 2: Выходной HTML не будет отличаться, только правила CSS, которые применяются к фактической отображаемой странице, что рассматривается человеком. Или вы хотите посмотреть, какие стили применяются к конечной отображаемой странице DOM вместо того, как выглядит HTML?

+1

Спасибо, но это не отвечает на вопрос. Я не хочу, чтобы таблица стилей применялась ко всем типам носителей, но я хочу иметь возможность отображать представление в коде так, как будто оно будет отображаться для этого типа носителя. – DaveD

+0

Почему вы не устанавливаете таблицу стилей при рендеринге кода? Обновлен мой ответ выше. См. Также http://stackoverflow.com/questions/7768827/rendering-partial-view-in-code-mvc-razor http://stackoverflow.com/questions/4607843/razor-if-else-conditional-operator-syntax http://stackoverflow.com/questions/6295659/passing-parameters-in-partial-views-mvc3-razor http://stackoverflow.com/questions/6549541/how-to-pass-parameters-to-a-partial -view-in-asp-net-mvc –

+1

Подумайте об этом как о единичном тесте. Я вообще не хочу касаться страницы просмотра. Я просто хочу, чтобы этот один бит кода сказал «Эй, страница. Вы уже знаете, как применять соответствующие стили для себя, поэтому давайте притвориться, что я печатаю (или мобильный или обычный экран). Gimmie your HTML». – DaveD

 Смежные вопросы

  • Нет связанных вопросов^_^