C# Web API2:带有整数参数的简单路由不起作用
C# Web API2: simple routing with integer parameter is not working
我有一个简单的控制器。我启动了 2 个 URL,一个在工作,第二个不工作。我正在使用 VS 2013 EXPRESS :).
http://localhost:53416/api/payments/ - 工作并显示“1”
http://localhost:53416/api/payments/2 - 不起作用并显示错误 HTTP
错误 404.0 - 未找到(未显示“2”)。
第二种操作方法有什么问题?
控制器代码
[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 }
);
}
}
我认为您的 GetPayments 代码应该包含名为 id 的参数,而不是 invoiceId.
public IHttpActionResult GetPayments(int id)
{
return Ok("2");
}
我有一个简单的控制器。我启动了 2 个 URL,一个在工作,第二个不工作。我正在使用 VS 2013 EXPRESS :).
http://localhost:53416/api/payments/ - 工作并显示“1” http://localhost:53416/api/payments/2 - 不起作用并显示错误 HTTP 错误 404.0 - 未找到(未显示“2”)。
第二种操作方法有什么问题?
控制器代码
[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 }
);
}
}
我认为您的 GetPayments 代码应该包含名为 id 的参数,而不是 invoiceId.
public IHttpActionResult GetPayments(int id)
{
return Ok("2");
}