ASP.NET Core中注册页面无法访问(404错误)求助
解决ASP.NET Core注册页面404错误的方案
1. 添加GET请求的Register方法
当前AccountController仅实现了[HttpPost]类型的Register方法,但用户访问注册页面发起的是GET请求,没有对应处理方法会直接返回404。需添加以下代码:
[HttpGet] public IActionResult Register() { return View(); }
2. 修复构造函数的依赖注入赋值错误
构造函数中参数与私有字段的赋值顺序颠倒,导致依赖注入实例无法正确绑定,会引发空引用异常,同时可能干扰路由匹配逻辑:
// 错误写法 public AccountController(checkRegisterUser checkRegisterUser) { checkRegisterUser = _checkRegisterUser; } // 正确写法 public AccountController(checkRegisterUser checkRegisterUser) { _checkRegisterUser = checkRegisterUser; }
3. 确认路由配置有效性
检查Program.cs中的默认路由配置,确保包含控制器和动作参数:
app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
若使用属性路由,需在控制器或方法上添加[Route]特性,示例:
[Route("Account")] public class AccountController : Controller { // ... [HttpGet("Register")] public IActionResult Register() { return View(); } }
4. 验证视图文件路径
确保注册视图文件位于Views/Account/Register.cshtml,且继承的_Layout.cshtml路径配置正确,避免因视图文件缺失间接导致的404问题。
内容的提问来源于stack exchange,提问作者AliHANiF
相关产品推荐
相关产品推荐

