ASP.请求的资源不支持http方法'GET'

本文关键字:GET 方法 http 请求 资源 不支持 ASP | 更新日期: 2023-09-27 17:50:59

我的目标是在将在后端使用的GET调用中按姓氏搜索。我有Get()和Get(int id)工作得很好,虽然我花了一段时间试图获得SearchByLastName(字符串名称)工作,但不能。这是我的控制器

中的函数
// GET
[Route("api/member/byLastname/{id}")]
public IHttpActionResult SearchByLastName(string id)
{
    var member = _context.Members.SingleOrDefault(m => m.LastName == id);
    if (member == null)
    {
        return NotFound();
    }
    return Ok(member);
}

我无论如何也弄不明白为什么其他Get函数都能工作,而且路由看起来也很正确。

在这种情况下,我所做的调用看起来像这样:http://.../api/Member/byLastName/Smith

任何想法?

ASP.请求的资源不支持http方法'GET'

哇,我花了一个多小时试图找到一个答案,我得到了一个正确的后,我张贴这个问题。很抱歉。无论如何,答案是在名称中使用动词Get作为前缀是惯例。我把我的改成了GetLastName(string id),它现在可以工作了

与其使用Route[""],我建议总是使用动词,它支持路由,所以,而不是

[Route("api/member/byLastname/{id}")]

你可以做

[HttpGet("api/member/byLastname/{id}")]

HttpGet属性在Microsoft.AspNet.Mvc命名空间