使用RoutingParameter进行属性路由

时间:2015-01-21 21:49:00

标签: asp.net-mvc asp.net-web-api routing

我目前在使用属性路由的web api控制器中有一组操作方法。

[RoutePrefix("Paper")]...

[Route("Shape/Octagon/{id:minlength(1)}]
public IEnumerable<sampleShape> PostactionName(string id){..}

[Route("Shape/Hexagon/{id:minlength(1)}]]
public IEnumerable<sampleShape> PostactionName(string id){..}

适用于以下URI

api/Paper/Shape/Octagon/"1,2,3"
api/Paper/Shape/Hexagon/"3,2,1"

但是一旦id参数变长,就变得无法使用。是否有路由使用参数id作为表单数据而不是URI的一部分但仍保留Route属性。

1 个答案:

答案 0 :(得分:1)

您可以使用FromBody属性让引擎知道参数将来自帖子正文

[RoutePrefix("Paper")]...

[Route("Shape/Octagon"}]
public IEnumerable<sampleShape> PostactionName([FromBody]string id){..}

[Route("Shape/Hexagon"}]]
public IEnumerable<sampleShape> PostactionName([FromBody]string id){..}