asp.net core web api 控制类定义技巧
ation放在类的外部,例如:
[Route("api/[controller]/[action]")]
[ApiController]
public class SystemInfoController : ControllerBase此种类型,则action对整个类起作用,路由访问的时候,action可被类的方法名代替:
[Route("api/[controller]/[action]")]
[ApiController]
public class SystemInfoController : ControllerBase
{
// 请求方式为: http://localhost:7216/api/SystemInfo/Do1
[HttpGet]
public string Do1()
{
return "hello ";
}
// 请求方式为: http://localhost:7216/api/SystemInfo/Do2?id=def
[HttpGet]
public string Do2(string id)
{
return "hello: " + id;
}
// 请求方式为: http://localhost:7216/api/SystemInfo/Do3?id=def
[HttpGet]
public string Do3(string id)
{
return "good: " + id;
}注意:..../方法名 + ? + 参数=
2. [action]放在类的方法定义上面,则action 仅仅对该方法有效,如下:
[Route("api/[controller]")]
[ApiController]
public class SystemManagerController : ControllerBase
{
// 以下2个都是http get 方法,但是路由不同,分别为 api/SystemManager、api/SystemManager/1、api/SystemManager/ab/28
[HttpGet]
public string GetC()
{
return "hello world";
}
[HttpGet("{id}")]
public string GetD(int id)
{
return "hello world 0:";
}
// 注意:[action] 既可以加在类外头部(对类起作用),也可以放在方法头上面(仅对该方法有用)
// 方法外面[action]修饰,则访问方法为:http://localhost:5049/api/SystemManager/GetE/222
[HttpGet("[action]/{id}")]
public string GetE(int id)
{
return "hello world 00:" + id;
}
// 请求url:http://localhost:5049/api/SystemManager/GetF?id=985
[HttpGet("[action]")]
public string GetF(int id)
{
return "hello world 00:" + id;
}
[HttpGet("ab/{id}")] // 注意:通过ab来区分路由,以便多个httpget得以调用
public string GetDF(int id)
{
return "hello world 1: " + id;
}
[HttpGet("abc/{id}")] // 注意:通过ab来区分路由,以便多个httpget得以调用
public string GetDFG(int id)
{
return "hello world 2 :"+id;
}
}
3. 部分截图


