4、参数的约束和默认值
[Route("api/order/{id:int=3}/ordertype")]
[HttpGet]
public IHttpActionResult GetById(int id)
{
return Ok<string>("Success" + id );
}
这里约束可变部分{id}的取值必须是int类型。并且默认值是3.
看看效果
不满足约束条件,则直接返回404。
5、路由前缀
在正式项目中,同一个控制器的所有的action的所有特性路由标识一个相同的前缀,这种做法并非必须,但这样能够增加url的可读性。一般的做法是在控制器上面使用特性[RoutePrefix]来标识。
[RoutePrefix("api/order")]
public class OrderController : ApiController
{
[Route("")]
[HttpGet]
public IHttpActionResult GetAll()
{
return Ok<string>("Success");
}
[Route("{id:int}")]
[HttpGet]
public IHttpActionResult GetById(int id)
{
return Ok<string>("Success" + id );
}
[Route("postdata")]
[HttpPost]
public HttpResponseMessage PostData(int id)
{
return Request.CreateResponse();
}
}
那么这个这个控制器的action的时候,都需要/api/order开头,后面接上action特性路由的规则。












