在 asp.net core 中,您可以使用Action 过滤器来替换 webform 中的“Page_Load”方法。
您可以在启动时注册Action过滤器的全局范围,以确保在执行每个操作之前都会执行Action过滤器。
在您的项目中添加以下操作过滤器:
public class MyActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// Do something before the action executes.
if (!context.HttpContext.Request.Path.ToString().Contains("Login"))
{
if (context.HttpContext.Session.GetString("user") == null)
{
context.Result = new RedirectToRouteResult(
new RouteValueDictionary { { "controller", "Login" }, { "action", "Index" } });
}
}
}
public void OnActionExecuted(ActionExecutedContext context)
{
// Do something after the action executes.
}
}
然后在 startup.cs ConfigureServices方法中,添加以下代码以将其应用于所有范围:
services.AddControllersWithViews(options =>
{
options.Filters.Add(typeof(MyActionFilter));
});