Я хочу, чтобы манипулировать HTML, используя пользовательский двигатель вида, как это:Определить контекст RenderView в MVC3
protected override void RenderView(ViewContext viewContext, TextWriter writer, object instance)
{
if (viewContext.Controller is MyController)
{
.. alter the html then write to writer
} else {
base.RenderView(viewContext, writer, instance);
}
}
RenderView
вызывается для представления и каждый частичного вида, но я не могу понять, надежный способ чтобы определить, является ли это визуализацией внешнего вида или частичного представления.
Тип объекта writer
: HttpWriter
для частичного просмотра и StringWriter
для внешнего вида. Это кажется плохим способом протестировать его, но пока это единственная конкретная вещь, которую я могу найти
instance
указывает мне вид или частичное представление, но проверяет строку, чтобы увидеть, если я показываю частичный вид или нет, кажется хрупким.
Есть ли более прямой способ определить, является ли это частичным видом или нет?
Простой и блестящий. Я продолжал подсчет в конструкторе, чтобы убедиться, что это был первый вызов (я делаю обратные вызовы для настраиваемого контроллера), который работает, но кажется шатким. Это намного лучше. –