2012-02-27 46 views
0

我正面臨着ASP .NET MVC的一個問題。我正在研究一種技術,以便在會話死亡(過期)後恢復會話。爲了使這種技術起作用,我需要一種能夠在控制器的操作方法被調用後寫入響應的方式。始終輸出特定的HTML?

哪種方法最好?有沒有一個動作過濾器?

回答

2

如果要使用基於屬性的方法,請從ActionFilterAttribute派生並重寫OnActionExecuted(在已執行操作後但在結果執行前運行)或OnResultExecuted(在結果執行後運行,例如在視圖被渲染之後)。

如果你不去屬性方式,實現IActionFilter或IResultFilter並實現上面提到的方法。

您可以分別通過filterContext.HttpContext.Response.OutputfilterContext.HttpContext.Response.OutputStream訪問輸出寫入器/輸出流。

+0

這並不意味着將具有回火輸出流是**最好的**或者甚至是一個**好**的解決方案。但要回答我們需要更多地瞭解您所採取的方法。 – 2012-02-27 10:18:18

0

創建一個行動後,將出現一個過濾器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(); 
}