网站用户注册页面出现405错误

问题描述 投票:0回答:1

根据下面的代码,我将 HttpPost 功能设置为动作,但是当我点击网站上的注册按钮时,出现 405 错误。 //代码 公开课账户:Controller {

 private readonly IUserRepository _userRepository;
 public Account(IUserRepository userRepository)
 {
     _userRepository = userRepository;
    
 }


 [HttpPost]
 public IActionResult Register(AccountViewModel Register)
 {
     //بررسی موفقیت اتصال
     if(!ModelState.IsValid)
     {
         return View(Register);
     }
     if (_userRepository.IsExistEmail(Register.Email.ToLower()))
     {
         ModelState.AddModelError(key:"Email", errorMessage:"آدرس ایمیل در سایت ثبت شده است");
         return View(Register);
     };
     User user = new User()
     {
         Email = Register.Email.ToLower(),
         Password = Register.Password,
         isAdmin = false, registerDate = DateTime.Now
     };
     _userRepository.AddUser(user);
     return View("SuccessRegister", Register);
 }

我使用了[ValidateAntiForgeryToken]功能,但它没有解决问题。我什至在视图中的表单中使用了post方法,但我又遇到了这个错误。通过修复这个错误,用户如果不是管理员也可以注册。

c# asp.net-core backend
1个回答
0
投票

根据下面的代码,我将HttpPost功能设置为action,但是 当我点击网站上的注册按钮时,收到 405 错误

嗯,根据您的场景和描述以及共享代码,如果您也能分享您的观点就更好了。

根据我的调查,

405 error
通常表示请求的资源不允许使用用于请求的 HTTP 方法。在您的代码上下文中,问题似乎可能与 HTTP POST 请求的处理方式有关。

为了深入了解您的问题,您可能需要仔细检查一些东西,

首先,确保您的注册表在其开始标签中使用

method="post"
。另请检查浏览器开发人员工具或检查表单的 HTML 源代码。

另一个重要的事情是,验证表单的操作属性指向处理 POST 请求的正确 URL。它通常应该是您的帐户控制器中注册操作的路径。

此外,由于您提到使用

[ValidateAntiForgeryToken]
,请确保您的视图中有适当的标签,且其中包含
@Html.AntiForgeryToken()
。另外,请确保令牌与 POST 请求一起提交。有时,不正确的路由也可能导致此错误。

注意:请仔细按照上述步骤操作。您也可以参考这个官方文档了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.