Asp.net 404访问Web API方法时未找到

Asp.net 404访问Web API方法时未找到,asp.net,asp.net-web-api,asp.net-web-api2,asp.net-core-mvc,Asp.net,Asp.net Web Api,Asp.net Web Api2,Asp.net Core Mvc,我需要此方法返回整数值: [Route("api/[controller]")] public class ValuesController : Controller { [HttpPost("ByPayment")] public int Payment(string accountId, string mount, string shenase) { return 21; } } 当我去以下地址时: http://localhost:1070

我需要此方法返回整数值:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpPost("ByPayment")]
    public int Payment(string accountId, string mount, string shenase)
    {
        return 21;
    }
}
当我去以下地址时:

http://localhost:1070/api/values/Payment/ByPayment?accountId=258965&mount=85694&shenase=85456
我得到以下错误:


有什么问题吗?我该如何解决这个问题呢?

您获得404的原因可能更多。但是有一件事是绝对错误的——您将
GET
请求发送到标记为
[HttpPost(“ByPayment”)]
的方法(这意味着它只响应
POST
请求)

我不知道您打算做什么,但您必须将其更改为
[HttpGet(“ByPayment”)]
或使用可以发出
POST
请求的REST客户端(例如:


另一个原因可能是您的控制器名称错误。它应该被称为
PaymentController

我知道您想用查询字符串参数发送Get请求

1.将“HttpPost”更改为“HttpGet”
[HttpPost(“ByPayment”)]
[HttpGet(“ByPayment”)]

2.同时更改您的请求url,这是不正确的

http://localhost:1070/api/values/Payment/ByPayment?accountId=258965&mount=85694&shenase=85456

http://localhost:1070/api/Values/ByPayment?accountId=258965&mount=85694&shenase=85456

更新代码

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("ByPayment")]
    public int Payment(string accountId, string mount, string shenase)
    {
        return 21;
    }
}

我建议您阅读本文以了解webapi的基本知识。

包含的控制器类具有什么类型的名称/属性?@GWigWam抱歉。我无法理解您的问题您的控制器名称是什么?它是否继承自ApiController?@CiprianLipan控制器名称
和否,它不继承它返回
。但是我需要返回
21
我把它添加到问号中。