using SimApi.Communications; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.ModelBinding; using System.Linq; using static SimApi.Helpers.SimApiError; namespace SimApi.Controllers; /// /// 基础控制器,所有控制器均继承本控制器 /// 1. 自动验证请求参数 /// 2. 报错返回 /// 3. 错误回馈页面 /// /// [Consumes("application/json")] [Produces("application/json")] public class SimApiBaseController : Controller { /// /// 当前登录用户的ID /// protected SimApiLoginItem LoginInfo => (SimApiLoginItem)HttpContext.Items["LoginInfo"]!; protected SimApiLoginItem LoginToken => (SimApiLoginItem)HttpContext.Items["LoginToken"]!; /// /// 验证请求参数 /// /// public override void OnActionExecuting(ActionExecutingContext context) { if (context.ModelState.IsValid) return; foreach (var item in context.ModelState.Values.Where(item => item.ValidationState == ModelValidationState.Invalid)) { Error(400, item.Errors.First().ErrorMessage); break; } } }