调用操作方法时,未找到HTTP 404错误

时间:2018-06-19 10:26:54

标签: c# asp.net-web-api2 asp.net-web-api-routing

请查看以下我的申请详情

public class CartController : ApiController
{
    [HttpGet]
    public Response<CartDto> GetById(Guid customerId)
    {
        ....
    }
}

WebApiConfig.cs

routeTemplate: "api/{controller}/{action}/{id}",

URL

http://localhost:50300/api/Cart/GetById/customerId=5D5020DA-47DF-4C82-A722-C8DEAF06AE23

当我使用上述URL调用action方法时,我收到HTTP 404 Not Found。出了什么问题?

2 个答案:

答案 0 :(得分:2)

网址

 api/Cart/GetById/customerId=5D5020DA-47DF-4C82-A722-C8DEAF06AE23

且操作参数名称customerId与路径模板

不匹配
api/{controller}/{action}/{id}

更新行动

[HttpGet]
public Response<CartDto> GetById(Guid id) {
    //....
}

和网址应遵循模板

api/Cart/GetById/5D5020DA-47DF-4C82-A722-C8DEAF06AE23

答案 1 :(得分:0)

URL的主要问题是缺少?来表示查询字符串的开头:

http://localhost:50300/api/Cart/GetById/?customerId=5D5020DA-47DF-4C82-A722-C8DEAF06AE23

?之后的所有内容都在查询字符串中,并按名称进行匹配(即customerId与您的同名参数匹配)。

相关问题