我正在尝试使用api方法来使用POST,但它坚持尝试使用GET。我用Google搜索并搜索过,但我尝试的所有内容都会返回相同的消息。
这是我的控制器:
hx start --dev
无论我尝试什么,这都是我得到的信息:
消息:“请求的资源不支持http方法'GET'。”
请求 网址:http://localhost:61645/api/game/452/createcharacter/testChar1 请求方法:GET状态代码:405方法不允许远程 地址:[:: 1]:61645
我正在使用:使用System.Web.Http;
这有诀窍吗?
由于
答案 0 :(得分:2)
使用此代码:
[Route("api/game/{gameId}/createcharacter/{name}")]
[HttpPost]
public IHttpActionResult PostNewCharacter(string name)
{
return Created("created", CharacterGenerationService.CreateNewCharacter(name));
}
答案 1 :(得分:0)
在路由模板中,您说您将从URL获取name
参数值,但在方法的签名中,您使用FromBody
属性修饰相同的参数,该参数告诉您将检索该值来自邮件正文。
您有两种选择:
FromBody
属性,您的网址将正常运行name
值发布到您的请求正文中。 gameId
参数怎么样?
你的方法不需要它吗?如果是,则需要将其作为方法参数传递。