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

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. 

主站蜘蛛池模板: 明水县| 基隆市| 呈贡县| 杭州市| 甘德县| 锡林郭勒盟| 日喀则市| 东方市| 南宁市| 四子王旗| 界首市| 中山市| 南郑县| 萨迦县| 靖宇县| 辉南县| 石景山区| 政和县| 澄城县| 广安市| 隆德县| 怀化市| 海阳市| 五大连池市| 都昌县| 鲜城| 眉山市| 桂阳县| 金寨县| 简阳市| 双峰县| 阿合奇县| 恩平市| 扶余县| 铜鼓县| 出国| 定安县| 寿阳县| 卢湾区| 醴陵市| 望都县|