官术网_书友最值得收藏!

Parameterizing the route template

Attribute-based routing supports a few predefined tokens that are placed in square brackets ([ and ]), and will be replaced at runtime with their corresponding value:

  • [controller]: This will be replaced with the controller name.
  • [action]: This will be replaced with the method name.
  • [area]: If your application supports areas, this will be replaced with the area in which the controller resides. Area functionality is not covered in this book, but for more information, you can refer to https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas.

For example, instead of writing ProductsController explicitly in the RouteAttribute, we can write it like this:

[Route("api/[controller]")]
[ApiController]
public class ProductsController : Controller
{
...
}

Tokens within curly braces ({}) define route parameters that will be bound to the method parameters if the route is matched.

For example, suppose you wish to expose an API to search for products, based on a keyword, in the form of a GET request to a URL formatted as /api/products/search/keyword. This is how you can write it:

[HttpGet("search/{keyword}")]
public string[] SearchProducts(string keyword)
{
...
}

Just like with conventional routing, you can define default values and constraints on the route parameters. 

主站蜘蛛池模板: 鄂伦春自治旗| 珠海市| 许昌县| 克拉玛依市| 梓潼县| 凤凰县| 荥经县| 兰溪市| 海原县| 柳江县| 吉水县| 贡觉县| 荆州市| 讷河市| 杂多县| 桦川县| 大方县| 呼伦贝尔市| 行唐县| 德钦县| 新沂市| 璧山县| 民勤县| 汽车| 通城县| 资兴市| 富宁县| 抚远县| 昌乐县| 富民县| 福海县| 海淀区| 松原市| 台前县| 彩票| 牟定县| 南岸区| 许昌县| 肇源县| 嘉定区| 五台县|