ASP.NET Core 3.1 Razor Pages:如何从Index页自动重定向至Login页?
解决ASP.NET Core 3.1 Razor Pages自动从Index重定向到Login的问题
首先,你之前的实现思路存在几个问题:在构造函数里调用OnPostRedirect1()是错误的(构造函数仅负责初始化对象,不处理HTTP请求逻辑),而且OnPost方法是用来处理POST请求的,默认访问Index页面时发起的是GET请求,所以这个方法根本不会被触发。
下面给你两种简单有效的实现方式:
方法一:在Index页的OnGet方法中直接重定向
这是最直接的方式,因为用户访问Index页面时默认发起的是GET请求,我们只需要在OnGet方法里返回重定向结果即可:
public class IndexModel : PageModel { public IActionResult OnGet() { // 重定向到Login页面 return RedirectToPage("Login"); } }
同时你可以删掉Index.cshtml里那个隐藏的表单,因为完全不需要它来实现自动重定向。
方法二:修改默认路由直接指向Login页面
如果不想经过Index页的重定向,你可以直接修改项目的路由配置,把默认根路径的请求直接导向Login页面。
在Startup.cs的Configure方法中,修改端点配置:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 其他中间件配置... app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); // 设置根路径"/"直接重定向到Login endpoints.MapGet("/", context => context.Response.Redirect("/Login")); }); }
这样用户访问网站根路径时,会直接跳转到Login页面,完全绕开Index页。
内容的提问来源于stack exchange,提问作者devman
相关产品推荐
相关产品推荐

