在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控制器内定义路由了。