平安校园
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

71 rader
1.6 KiB

  1. //
  2. namespace SafeCampus.Core;
  3. /// <summary>
  4. /// 全局分页查询输入参数
  5. /// </summary>
  6. public class BasePageInput : IValidatableObject
  7. {
  8. /// <summary>
  9. /// 当前页码
  10. /// </summary>
  11. [DataValidation(ValidationTypes.Numeric)]
  12. public virtual int PageNum { get; set; } = 1;
  13. /// <summary>
  14. /// 每页条数
  15. /// </summary>
  16. [Range(1, 100, ErrorMessage = "页码容量超过最大限制")]
  17. [DataValidation(ValidationTypes.Numeric)]
  18. public virtual int PageSize { get; set; } = 10;
  19. /// <summary>
  20. /// 排序字段
  21. /// </summary>
  22. public virtual string SortField { get; set; }
  23. /// <summary>
  24. /// 排序方式,升序:ascend;降序:descend"
  25. /// </summary>
  26. public virtual string SortOrder { get; set; } = "desc";
  27. /// <summary>
  28. /// 关键字
  29. /// </summary>
  30. public virtual string SearchKey { get; set; }
  31. public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
  32. {
  33. //配合小诺排序参数
  34. if (SortOrder == "descend")
  35. {
  36. SortOrder = "desc";
  37. }
  38. else if (SortOrder == "ascend")
  39. {
  40. SortOrder = "asc";
  41. }
  42. if (!string.IsNullOrEmpty(SortField))
  43. {
  44. //分割排序字段
  45. var fields = SortField.Split(" ");
  46. if (fields.Length > 1)
  47. {
  48. yield return new ValidationResult("排序字段错误", new[]
  49. {
  50. nameof(SortField)
  51. });
  52. }
  53. }
  54. }
  55. }