我正面臨着ASP .NET MVC的一個問題。我正在研究一種技術,以便在會話死亡(過期)後恢復會話。爲了使這種技術起作用,我需要一種能夠在控制器的操作方法被調用後寫入響應的方式。始終輸出特定的HTML?
哪種方法最好?有沒有一個動作過濾器?
我正面臨着ASP .NET MVC的一個問題。我正在研究一種技術,以便在會話死亡(過期)後恢復會話。爲了使這種技術起作用,我需要一種能夠在控制器的操作方法被調用後寫入響應的方式。始終輸出特定的HTML?
哪種方法最好?有沒有一個動作過濾器?
如果要使用基於屬性的方法,請從ActionFilterAttribute派生並重寫OnActionExecuted(在已執行操作後但在結果執行前運行)或OnResultExecuted(在結果執行後運行,例如在視圖被渲染之後)。
如果你不去屬性方式,實現IActionFilter或IResultFilter並實現上面提到的方法。
您可以分別通過filterContext.HttpContext.Response.Output
或filterContext.HttpContext.Response.OutputStream
訪問輸出寫入器/輸出流。
創建一個行動後,將出現一個過濾器excuted,像這樣:
using System;
namespace Sample
{
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class SampleFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}
}
}
那麼這樣的裝飾你的行動(S):
[SampleFilter]
public virtual ActionResult Index()
{
return View();
}
這並不意味着將具有回火輸出流是**最好的**或者甚至是一個**好**的解決方案。但要回答我們需要更多地瞭解您所採取的方法。 – 2012-02-27 10:18:18