在ASP.NET Core中,可以使用多属性路由来定义控制器和操作方法的路由,这使得写入路由变得更加灵活。下面是一个示例:
[Route("users/{userId}/orders/{orderId}")]
public IActionResult GetOrder(int userId, int orderId)
{
// code to handle GET request for specific order
}
[Route("users/{userId}/orders")]
public IActionResult GetOrders(int userId)
{
// code to handle GET request for all orders for a user
}
在上面的示例中,我们定义了两个操作方法,分别是GetOrder和GetOrders。它们都使用了多属性路由的语法,其中使用了curlies({})来表示需要从URL中提取的参数。当请求的URL匹配路由模板时,ASP.NET Core会自动将参数值解析到操作方法的参数中。
另外,也可以将多个路由模板映射到同一个操作方法中,以使其能够处理多个URL。例如:
[Route("products/{productId:int}/details")]
[Route("items/{productId:int}/details")]
public IActionResult GetProductDetails(int productId)
{
// code to handle GET request for product details
}
在这个例子中,我们使用了两个不同的路由模板,分别是products/{productId:int}/details和items/{productId:int}/details。不论请求URL是哪一个,它们都会映射到同一个操作方法中来处理。
总体来说,使用ASP.NET Core多属性路由是一种非常方便和强大的路由方式,可以让你更灵活地控制URL的格式和参数,同时不会牺牲性能和可读性。