Как использовать ASP.NET MVC ActionFilterAttribute / IResultFilter для изменения вывода - PullRequest
3 голосов
/ 05 ноября 2008

Я пытаюсь изменить выходной поток для поиска / замены некоторых тегов XHTML, возвращаемых из представления. Я мог бы использовать традиционный фильтр ответов ASP.NET, но решил сначала попробовать фильтр действий ASP.NET MVC.

public class MyResultFilter : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {            
        base.OnResultExecuting(filterContext);
    }
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        ViewResult viewResult = filterContext.Result as ViewResult;
        Debug.WriteLine("OnResultExecuted");
        base.OnResultExecuted(filterContext);
    }   
}

У меня проблемы с определением, как изменить или получить поток вывода viewResult. В примерах в Интернете показано только ведение журнала основных свойств без изменения результата.

1 Ответ

3 голосов
/ 05 ноября 2008

Я не думаю, что это хорошая идея делать это с ActionFilterAttribute, так как вскоре он предназначен для принятия решений на уровне контроллера, а не думает конкретно о пост-обработке HTML-запроса. Лучший способ сделать это правильно - возможно, создать определенный базовый класс View или даже ViewEngine, или использовать старые добрые HttpModules, как они были созданы для вещей, которые вы пытаетесь сделать. Приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...