我正面临ASP .NET MVC的问题。我正在研究一种技术,允许会话在死亡(过期)后恢复。要使这种技术起作用,我需要一种能够在调用控制器的动作方法后写入响应的方法。
哪种方法最好?是否有针对此的动作过滤器?
答案 0 :(得分:2)
如果要使用基于属性的方法,则从ActionFilterAttribute派生并覆盖OnActionExecuted(在执行操作之后但在执行结果之前运行)或OnResultExecuted(在执行结果之后运行,例如在视图已呈现)。
如果你没有采用属性方式,请实现IActionFilter或IResultFilter并实现上述方法。
您可以分别通过filterContext.HttpContext.Response.Output
或filterContext.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();
}