2013-12-11 4 views
1

У меня проблема на сайте MVC, где я хочу пройти через вывод html перед его отображением на страницу и сделать некоторую магию регулярных выражений, чтобы удалить некоторые атрибуты и элементы в html и затем «доставить» «новый» html на страницу.Заменить выходной html перед визуализацией, удалить атрибуты

Я заметил, что могу использовать IResultFilter и добавлять фильтр. Однако .. в моем собственном фильтре единственный метод, который Im знает о методе Write .. и кажется, что ASP.net MVC доставляет html-байты в chuks, в зависимости от размера «окончательного вывода» .. но в моем случае это вызывает некоторые проблемы .. так как кусок может быть отрезан в любое время в html и может быть там, например, для отключения атрибут, который я хочу сопоставить с моим регулярным выражением против .., который тогда закончил бы с моим регулярным выражением, который не работает должным образом. .. Так что же все-таки обойти «куски» -части и просто запустить мое регулярное выражение против всего html-вывода до его рендеринга и заменить его измененной html-разметкой?

ответ

0

Вы можете написать httpmodule для этого и внести свои изменения в событие OnEndRequest. http://www.drdobbs.com/windows/post-processing-the-output-of-aspnet-pag/212001499

public void OnEndRequest(object sender, EventArgs e) 
{ 
    HttpApplication app = (HttpApplication) sender; 
    HttpContext ctx = app.Context; 
    DoCustomProcessing(ctx.Response); 
} 
+0

Да, однако .. эта статья до сих пор относится к .Filter .. который я предполагаю, что все еще будет ломаться мой выход на куски байт-массивов в зависимости от размера выходного-разметки .. или я Я неверный? – Inx

+0

Это не такой фильтр, как mvc. Вот еще одна ссылка на эту тему: http: //www.4guysfromrolla.com/articles/120308-1.aspx. Вот еще один, который я нашел: http://www.windowsdevcenter.com/pub/a/dotnet/2003/10/20/httpfilter.html –

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