戳戳猫的小窝
更新日志
关于
查询功能需要创建2个视图模型,一个是提交查询数据的视图模型,称为SearchViewModel,另一个是返回数据列表的视图模型,称为ResultViewModel。 其中,ResultViewModel是SearchViewModel的组成部分。 # SearchViewModel 查询学生时,有6个可选的条件,分别是: - 专业 - 年级 - 班级 - 学号 - 姓名 - 性别 因此,SearchViewModel的基本属性如下: ``` public class SearchViewModel { public Guid? MajorId { get; set; } public Guid? GradeId { get; set; } public Guid? ClassId { get; set; } public string? Number { get; set; } public string? Name { get; set; } public bool? Gender { get; set; } } ``` 由于查询条件可为空,因此它们均为可空类型。 但是SearchViewModel还承担了传输下拉列表数据的职责,因此还需要添加2个下拉列表。 > 为什么不是3个? > > 因为班级的下拉列表可以调用StudentController中的分部视图 最后,SearchViewModel还需要将查询的数据传递给视图,因此还需要附带ResultViewModel的列表。 最终,SearchViewModel的代码如下所示: ``` public class SearchViewModel { public Guid? MajorId { get; set; } public Guid? GradeId { get; set; } public Guid? ClassId { get; set; } public string? Number { get; set; } public string? Name { get; set; } public bool? Gender { get; set; } public SelectList? Majors { get; set; } public SelectList? Grades { get; set; } public List<ResultViewModel> Results { get; set; } = new List<ResultViewModel>(); } ``` # ResultViewModel 查询后的数据除了显示SearchViewModel中的6个属性外,还要显示生日。 最终ResultViewModel中的代码如下: ``` public class ResultViewModel { public string Number { get; set; } = string.Empty; public string Name { get; set; } = string.Empty; public string MajorName { get; set; } = string.Empty; public string GradeName { get; set; } = string.Empty; public string ClassName { get; set; } = string.Empty; public bool Gender { get; set; } public DateTime Birthday { get; set; } } ```
创建视图模型