总是输出特定的HTML?

时间:2012-02-27 09:37:50

标签: c# asp.net-mvc

我正面临ASP .NET MVC的问题。我正在研究一种技术,允许会话在死亡(过期)后恢复。要使这种技术起作用,我需要一种能够在调用控制器的动作方法后写入响应的方法。

哪种方法最好?是否有针对此的动作过滤器?

2 个答案:

答案 0 :(得分:2)

如果要使用基于属性的方法,则从ActionFilterAttribute派生并覆盖OnActionExecuted(在执行操作之后但在执行结果之前运行)或OnResultExecuted(在执行结果之后运行,例如在视图已呈现)。

如果你没有采用属性方式,请实现IActionFilter或IResultFilter并实现上述方法。

您可以分别通过filterContext.HttpContext.Response.OutputfilterContext.HttpContext.Response.OutputStream访问输出编写器/输出流。

答案 1 :(得分:0)

创建在执行操作后将发生的过滤器,如下所示:

using System;

namespace Sample
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    public class SampleFilter : ActionFilterAttribute
    {
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {

            base.OnActionExecuted(filterContext);
        }
    }
}

然后装饰你的行动:

[SampleFilter]
public virtual ActionResult Index()
{
    return View();
}