在ASP.NET Core控制器内定义路由可以使用特性路由或约定路由两种方式。
[Route]
特性来定义路由模板。示例代码:
[Route("api/[controller]")]
public class MyController : Controller
{
[HttpGet("action")]
public IActionResult MyAction()
{
// 控制器方法逻辑
return Ok();
}
}
在这个示例中,控制器类上的[Route("api/[controller]")]
指定了控制器的根路由为api/My
,并且MyAction
方法上的[HttpGet("action")]
指定了该方法的路由为api/My/action
。
示例代码:
public class MyController : Controller
{
public IActionResult MyAction()
{
// 控制器方法逻辑
return Ok();
}
}
在这个示例中,控制器类名为MyController
,控制器方法名为MyAction
,因此路由路径为/My/MyAction
。
注意:在使用约定路由时,需要在Startup.cs
文件的ConfigureServices
方法中添加路由配置:
services.AddMvc(options =>
{
options.EnableEndpointRouting = false;
})
这样就可以在ASP.NET Core控制器内定义路由了。