ユーザーがログインしているかどうかを確認し、ユーザーIDを取得する単純なアクションフィルターを使用します。C#MVCのActionFilterからController Actionに変数を渡すにはどうすればよいですか?
public class LoginFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Authenticate (somehow) and retrieve the ID
int id = Authentication.SomeMethod();
// Pass the ID through to the controller?
.....
}
}
このIDをコントローラアクションに渡す方法はありますか?
[LoginFilter]
public class Dashboard : Controller
{
public ActionResult Index()
{
// I'd like to be able to use the ID from the LoginFilter here
int id = ....
}
}
私にこれを可能にするViewBagに相当するものはありますか?あるいは、フィルタとコントローラアクションの間で変数やオブジェクトを渡すことを可能にする他の技術ですか?
おかげさまで、私はViewbagではなく、@ luisoの回答として提案されたTempDataを使用してしまいました。 ViewDataを使用すると、実際の使用方法と例がわかり、テクニックはTempDataの場合と同じです。これは、ビュー用のものではなく、これが一時データであることが分かります。したがって、TempData –