当前位置: 首页 > 工具软件 > Web Archives > 使用案例 >

.net 6中webapi中的属性路由使用

谭卜鹰
2023-12-01

路由和参数的接收
首先什么是路由
在我们创建的Controllers里面的xxxContoller会发现
[Route(“api/[controller]”)]
这段代码有什么意义呢
实际Route 规定了我们的路由,
路由体现在URL里

http://localhost/api/controller?query

[controlller]中括号 差不多就是代表占位符

看代码
[ApiController]
//Url不区分大小写
//[action] 是你的方法名字 GetData
[Route(“api/[controller]/[action]”)]
public class TestController : ControllerBase
{
[HttpGet]
public string GetData()
{
return “1”;
}
}

[Route(“api/[controller]/[action]”)]
我们访问的url就是
http://localhost/api/test/getdata

去掉action的
[[Route(“api/[controller]”)]]
那么我们的url就是
http://localhost/api/test

去掉api/的
[[Route(“[controller]”)]]
那么我们的url就是
http://localhost/test

我们代码里会有不止一个Get请求,那么我们需要区分每个方法:
*[ApiController]
[Route(“api/[controller]”)]
public class TestController : ControllerBase
{
//出去使用[action]占位的方式还有两种方式 第一种直接[HttpGet(“xxxx”)]
/

[HttpGet(“xxx”)]
public string GetData()
{
return “1”;
}*/

//第二种使用[Route("xxx")]
[HttpGet]
[Route("xxxx")]
public string GetData() 
{
    return "1";
}

}**
那么我们访问的url就是
http://localhost/api/test/xxx

细心的小伙伴能回会发现创建的有个Name 属性
那么他代表什么呢

Name,目前测试可以用于寻址,并且调用时指定参数不能为空,其它作用不明 ,有兴趣去查查官方文档吧

[HttpGet(Name = “GetWeatherForecast”)]

原文地址:https://bxshare.top/index.php/archives/22/

 类似资料: