平安校园
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.

BasePageInput.cs 1.6 KiB

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