Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Http 405:请求的资源不支持';获取';_C#_Asp.net Web Api - Fatal编程技术网

C# Http 405:请求的资源不支持';获取';

C# Http 405:请求的资源不支持';获取';,c#,asp.net-web-api,C#,Asp.net Web Api,您好,我有一个register方法,它实际上是一个POST,但返回一个Get。这在生产服务器上发生 [RoutePrefix("register')] public class RegisterController : ApiController { private UserRepository userRepository; public RegisterController() { userRepository = new Use

您好,我有一个register方法,它实际上是一个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();
    }
[RoutePrefix(“寄存器”)]
公共类注册控制器:ApiController
{
私有用户存储库用户存储库;
公共注册表控制器()
{
userRepository=newuserrepository();
}
[异名]
[路线(“”)
公共异步任务寄存器(用户)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
IdentityResult结果=等待userRepository.RegisterUser(用户);
IHttpActionResult error=GetError(结果);
if(错误!=null)
{
返回误差;
}
返回Ok();
}

尝试此解决方案未成功

您必须更新注册方法以允许Post调用

见下文

[AllowAnonymous]
[Route("register")]
[HttpPost]
public async Task<IHttpActionResult> Register(Users user)
{
   //Your code
}
[AllowAnonymous]
[路线(“登记”)]
[HttpPost]
公共异步任务寄存器(用户)
{
//你的代码
}

我以前遇到过此问题(405:不允许使用方法),删除WebDav发布功能解决了此问题。您可以转到“添加/删除功能”,然后在IIS下尝试删除Web Dav发布。下面是从windows 10控制台拍摄的屏幕截图(可能因服务器操作系统而异)

是的,我认为需要[HttpPost]注释


在您的控制器中,您将有两种注册方法,一种是使用get annotation返回视图,另一种是使用post annotation创建或注册用户本身。我已经创建了一个新项目,我可以按如下方式执行

 [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);
        }
[AllowAnonymous]
公众行动结果登记册()
{
返回视图();
}
//
//职位:/Account/Register
[HttpPost]
[异名]
[ValidateAntiForgeryToken]
公共异步任务寄存器(RegisterViewModel模型)
{
if(ModelState.IsValid)
{
//这里有很多东西
}
返回视图(模型);
}

我们必须说[HttpPost]注释用于register方法。它不是吗???
实际上是一个POST,但返回一个Get。
我不明白该语句的意思。它应该返回一个POST错误,但我想知道为什么在Azure上它返回一个Get不支持的错误