控制器 Controller
控制器是整个框架的核心,负责处理请求,调用模型和视图,返回响应。
创建控制器
控制器文件存放在 Controllers 目录下,文件名即为控制器名,首字母大写,以 Controller 结尾,例如 SysUserController。
控制器特性
cs
[Route("api/[controller]/[action]")]
[ApiController]
// 统一继承BaseApiController基类, 传入表对应实体类和主键类型, 内部封装公用的方法
public class SysUserController : BaseApiController<SysUser, int>
{
// ...
} [Route("api/[controller]/[action]")]
[ApiController]
// 统一继承BaseApiController基类, 传入表对应实体类和主键类型, 内部封装公用的方法
public class SysUserController : BaseApiController<SysUser, int>
{
// ...
}BaseApiController 基类
内部继承了
ControllerBase,封装了常用的返回方法,如Success、Fail,可以简化代码。统一过滤了表格查询方法: 动态组装分页的过滤条件表达式树, 详细请见
DynamicFilterExpress方法。
控制器方法
控制器方法默认为 GET 请求,如果需要指定请求方法,可以使用 [HttpGet]、[HttpPost]、[HttpPut]、[HttpDelete] 等特性。
cs
[HttpGet]
public async Task<MessageModel<string>> Get()
{
await _sysUserService.Get(); // 调用服务层方法
return Success();
} [HttpGet]
public async Task<MessageModel<string>> Get()
{
await _sysUserService.Get(); // 调用服务层方法
return Success();
}增加权限
- 在控制器方法上增加
[Authorize(Permissions.Name)]特性,表示该方法需要权限才能访问。
cs
[HttpGet]
[Authorize(Permissions.Name)] // 方法中增加权限特性
public async Task<MessageModel<string>> Get()
{
await _sysUserService.Get(); // 调用服务层方法
return Success();
} [HttpGet]
[Authorize(Permissions.Name)] // 方法中增加权限特性
public async Task<MessageModel<string>> Get()
{
await _sysUserService.Get(); // 调用服务层方法
return Success();
}- 在控制器类上增加
[Authorize(Permissions.Name)]特性,表示该控制器下的所有方法都需要权限才能访问。
cs
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize(Permissions.Name)] // 控制器中增加权限特性
// 统一继承BaseApiController基类, 传入表对应实体类和主键类型, 内部封装公用的方法
public class SysUserController : BaseApiController<SysUser, int>
{
// ...
} [Route("api/[controller]/[action]")]
[ApiController]
[Authorize(Permissions.Name)] // 控制器中增加权限特性
// 统一继承BaseApiController基类, 传入表对应实体类和主键类型, 内部封装公用的方法
public class SysUserController : BaseApiController<SysUser, int>
{
// ...
}
TMom