Вы можете посмотреть тип контента:
if (HttpContext.Current.Response.ContentType == "text/html")
{
... you will be returning an HTML
}
или, если вы хотите ограничиться только статическими HTML-страницами, вы также можете посмотреть запрос:
if (HttpContext.Current.Request.Url.AbsolutePath.EndsWith(".html"))
{
... it was a static html page that was requested
}
ОБНОВЛЕНИЕ:
Хорошо, я только что заметил, что ваш вопрос был помечен asp.net-mvc
.Сначала, когда я увидел HttpModule, я подумал, что вы делаете обычное приложение ASP.NET (я даже не мог представить HttpModule в приложении MVC).
Теперь, когда это стало ясно, вы, очевидно, можете использовать фильтр глобальных действий , в котором вы можете переопределить методы OnActionExecuting
и OnActionExecuted
, которые будут вызываться соответственно до и после контроллера.действие выполнено.
Что касается вопроса о действии перенаправления в методе OnActionExecuted, вы можете посмотреть на filterContext.Result
и посмотреть, является ли он типом RedirectToRouteResult
:
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
if (!(filterContext.Result is RedirectToRouteResult))
{
...
}
}
}