ASP.NET MVCで、ActionFilterの中からControllerのプロパティに値をセットしたい
お世話になっています。
ASP.NET MVCで、共通の基本Classを継承する複数のControllerがあり、いずれも同じActionFilterが設定されています。
public class BaseController : Controller
{
public MemberParam mParam;
}
[AnalyseSession]
public class MemberController : BaseController
{
// some codes
}
[AnalyseSession]
public class HomeController : BaseController
{
// some codes
}
AnaliseSession アクションフィルタ内部で、呼び出したControllerの内部プロパティに値をセットしたいです。
public class AnalyseSessionAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context) {
var sessions = context.HttpContext.Session;
// セッションを取得してうんちゃらします
// ここがわからない部分
var controller = context.Controller as MemberController;
controller.mParam = this.mParam;
}
}
単一のコントローラなら、見たとおり問題な参照できますが、複数コントローラ・多数のプロパティの場合、シンプルに実装する方法をご教示ください。