我有一个简单的控制器。我开始2个URL,一个是工作,第二个不是。我正在使用VS 2013 EXPRESS :)。
http://localhost:53416/api/payments/ - 工作并显示“1” http://localhost:53416/api/payments/2 - 不起作用并显示错误HTTP 错误404.0 - 未找到(未显示“2”)。
第二种行动方法有什么问题?
Controler的代码
[RoutePrefix("api/payments")]
public class MvbePaymentController : ApiController
{
[Route("")]
[HttpGet]
public IHttpActionResult GetPayments()
{
return Ok("1");
}
[Route("{id:int}")]
[HttpGet]
public IHttpActionResult GetPayments(int invoiceId)
{
return Ok("2");
}
}
WebApiCOnfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new ValidateModelStateAttribute());
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
答案 0 :(得分:1)
我认为您的GetPayments代码应该包含名为 id 的参数,而不是 invoiceId 。
public IHttpActionResult GetPayments(int id)
{
return Ok("2");
}