戳戳猫的小窝
更新日志
关于
# 创建ClassViewModel 班级的视图模型和专业、年级的视图模型一样,都有**Id**和**Name**属性。 不同的是,在添加班级时,需要指定班级所处的专业和年级,因此,还需要添加**MajorId**和**GradeId**。 除此之外,在显示班级列表是,还需要显示专业名称和年级,因此还需要**MajorName**和**GradeName**。 最后,视图模型还需要附带Major和Grade的下拉列表数据,因此还需要2个**SelectList**类型的属性**Majors**和**Grades**。 最终**ClassViewModel**的代码如下: ``` public class ClassViewModel { public Guid Id { get; set; } [Required(ErrorMessage = "班级名称不能为空")] [Display(Name = "班级名称")] public string Name { get; set; } = string.Empty; public Guid MajorId { get; set; } [Display(Name = "专业名称")] public string MajorName { get; set; } = string.Empty; public Guid GradeId { get; set; } [Display(Name = "年级名称")] public string GradeName { get; set; } = string.Empty; public SelectList? Majors { get; set; } public SelectList? Grades { get; set; } } ``` # 创建ClassService 由于班级管理涉及到专业和年级的数据,因此,除了需要引入**ClassRepo**的实例,还需要引入**MajorRepo**和**GradeRepo**的实例。 代码如下: ``` public class ClassService(ClassRepo classRepo, MajorRepo majorRepo, GradeRepo gradeRepo) { } ``` 最后,通过AddScoped将ClassService注册为服务。 ``` services.AddScoped<ClassService>(); ``` # 创建ClassController 创建ClassController,并引入ClassService实例。 代码如下: ``` public class ClassController(ClassService classService) : Controller { public IActionResult Index() { return View(); } } ```
创建控制器及服务及视图模型