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
我把它添加到问号中。