私は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);
}
}
}
を次に、このようなあなたのアクション(複数可)を飾る:
[SampleFilter]
public virtual ActionResult Index()
{
return View();
}
これはで焼戻しすることを意味するものではありません出力ストリームは、あなたが望むものに対して、最高の**または**良い**ソリューションです。しかし、あなたが取っているアプローチについてもっと知る必要があると答えてください。 –