簡體   English   中英

Http 405: 請求的資源不支持 'GET'

[英]Http 405: The requested resource does not support 'GET'

你好,我有一個注冊方法,我正在嘗試使用它實際上是一個 POST 但返回一個 Get。 這發生在生產服務器上。

   [RoutePrefix("register')]
   public class RegisterController : ApiController
   {
     private UserRepository userRepository;

    public RegisterController()
    {
        userRepository = new UserRepository();
    }
    [AllowAnonymous]
    [Route("")]
    public async Task<IHttpActionResult> Register(Users user)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        IdentityResult result = await userRepository.RegisterUser(user);
        IHttpActionResult error = GetError(result);

        if(error != null)
        {
            return error;
        }

        return Ok();
    }

嘗試了這個解決方案https://docs.microsoft.com/en-us/aspnet/web-api/overview/testing-and-debugging/troubleshooting-http-405-errors-after-publishing-web-api-applications沒有成功

您必須更新您的 Register 方法以允許 Post 調用。

見下文。

[AllowAnonymous]
[Route("register")]
[HttpPost]
public async Task<IHttpActionResult> Register(Users user)
{
   //Your code
}

我之前遇到過這個問題(405 : Method not allowed),刪除 WebDav 發布功能解決了這個問題。 您可以轉到添加/刪除功能,然后在 IIS 下嘗試刪除 Web Dav 發布。 下面是從 Windows 10 控制台截取的屏幕截圖(它可能因服務器操作系統而異)

是的,我相信 [HttpPost] 注釋是必需的。

在此處輸入圖片說明

在您的控制器中,您將有兩個注冊方法,一個帶有 get 注釋以返回視圖,第二個帶有 post 注釋以創建或注冊用戶本身。 我創建了一個新項目,我可以如下

 [AllowAnonymous]
        public ActionResult Register()
        {
            return View();
        }

        //
        // POST: /Account/Register
        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
            // a lot goes in here
            }
            return View(model);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM