ASP.NET Core MVC 中的 Model

在本视频中,我们将通过一个示例讨论 ASP.NET Core MVC 中的 Model。

我们希望最终从 Student 数据库表中查询特定的学生详细信息并显示在网页上,如下所示。

 

MVC 中的模型包含一组表示数据的类和管理该数据的逻辑。 因此,为了表示我们想要显示的学生数据,我们使用以下 Student 类。

public class Student    {public int Id { get; set; }public string Name { get; set; }public string ClassName { get; set; }    }

ASP.NET Core 中的模型类不必位于 Models 文件夹中,但将它们保存在名为 Models 的文件夹中是一种很好的做法,因为以后更容易找到它们。

除了表示数据的 Student 类之外,模型还包含管理模型数据的类。 为了管理数据,即检索和保存学生数据,我们将使用以下IStudentRepository服务。 目前,我们只有一个方法 GetStudent()*通过 ID 查询学生。 随着课程的进行,我们将添加创建,更新和删除方法。

 public interface IStudentRepository    {Student GetStudent(int id);

    }

以下MockStudentRepository类提供了IStudentRepository接口的实现。 目前,我们正在对MockStudentRepository类中的Student 数据进行硬编码。 在我们即将发布的视频中,我们将为IStudentRepository接口提供另一种实现,该实现将从 SQL Server 数据库中检索数据。

 public class MockStudentRepository : IStudentRepository    {private List<Student> _studentList;

public MockStudentRepository()        {_studentList = new List<Student>()            {new Student() { Id = 1, Name = "张三", ClassName = "一年级", Email = "Tony-zhang@52abp.com" },new Student() { Id = 2, Name = "李四", ClassName = "二年级", Email = "lisi@52abp.com" },new Student() { Id = 3, Name = "王二麻子", ClassName = "二年级", Email = "wang@52abp.com" },            };        }

public Student GetStudent(int id)        {return _studentList.FirstOrDefault(a => a.Id == id);        }

}

在我们的应用程序中,我们将针对 IStudentRepository 接口进行编程,而不是具体实现 MockEmployeeRepository。 这种接口抽象化是允许我们使用依赖注入,这反过来也使我们的应用程序灵活且易于单元测试。

我们将在下一个视频中详细讨论依赖注入。

声明专区

如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦

未得到授权不得擅自转载本文内容,52abp.com保留版权

文字版目录:https://www.52abp.com/Wiki/mvc/latest/1.Intro

交流QQ群:952387474《微软MVP带你学ASP.NET CORE》

视频课程: https://ke.qq.com/course/392589?tuin=2522cdf3

注微信公众号:角落的白板报

【18】ASP.NET Core MVC 中的 Model介绍相关推荐

  1. 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

    索引: 目录索引 Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Ch ...

  2. ASP.NET Core MVC中的两种404错误

    我们在使用某些系统的时候,如果访问了一个不存在的地址怎么办,比如http://52abp. com/airport/fly:或者访问的地址路由和操作方法虽然存在,但是地址参数id不存在,比如https ...

  3. 在 ASP.NET Core MVC 中使用 Areas

    在 ASP.NET Core MVC 中使用 Areas 为什么要用 Areas 怎么用 Areas ⚠️使用注意 为什么要用 Areas 使用 Areas ,可以将应用程序中不同的业务模块分类,每个 ...

  4. ASP.NET Core MVC 中的 [Controller] 和 [NonController]

    Controller VS NonController 中内置的约定 在 ASP.NET Core MVC 中已经统一了 MVC 和 Web Api 及 Web Pages, 他们具有相同的 Cont ...

  5. 如何在 Asp.Net Core MVC 中处理 null 值

    译文链接:https://www.infoworld.com/article/3434624/how-to-handle-null-values-in-aspnet-core-mvc.html 传统的 ...

  6. ASP.NET Core MVC中的 [Required]与[BindRequired]

    在开发ASP.NET Core MVC应用程序时,需要对控制器中的模型校验数据有效性,元数据注释(Data Annotations)是一个完美的解决方案. 元数据注释最典型例子是确保API的调用者提供 ...

  7. asp.net core mvc中如何把二级域名绑定到特定的控制器上

    由于公司的工作安排,一直在研究其他技术,所以一直没时间更新博客,今天终于可以停下手头的事情,写一些新内容了. 应用场景:企业门户网站会根据内容不同,设置不同的板块,如新浪有体育,娱乐频道,等等.有的情 ...

  8. ASP.NET Core MVC中的viewmodel

    简述: ViewModel是ASP.NET Core MVC应用中的隐式声明的层,用来维护Model和View之间的数据传递,是View的数据容器.Model向视图传递数据最可靠的方法是在视图中指定模 ...

  9. 在ASP.NET Core MVC中构建简单 Web Api

    Getting Started 在 ASP.NET Core MVC 框架中,ASP.NET 团队为我们提供了一整套的用于构建一个 Web 中的各种部分所需的套件,那么有些时候我们只需要做一个简单的 ...

最新文章

  1. Lisp和前缀表示法入门
  2. php mariadb 查询语法,从PHP调用的查询中的MySQL(MariaDB)执行超时
  3. Moody Photoshop Panel for mac(ps专业色彩调色扩展面板)
  4. 相机标定(Camera calibration)
  5. php 正则 尖括号,php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符...
  6. 设计模式笔记十二:享元模式 | 更新版
  7. Spring 环境搭建与IOC HelloWorld
  8. 新的一年,谈谈我对技术架构的理解
  9. 一种非常好用的图像处理软件
  10. 2015职称计算机考试基础知识,2015年中级职称计算机考试基本知识点.doc
  11. 安科瑞电力监控系统在安徽华光有效薄膜太阳能电池高温玻璃项目的应用
  12. 如何判断自己的手机是山寨机?如何判断山寨机的芯片型号和平台?
  13. win10外接显示器后无声音 解决方案
  14. 2022-07-04-5万字长文说清楚到底什么是“车规级”
  15. 35岁腾讯员工被裁员感叹:北京一套房,存款700多万,失业好焦虑
  16. 阿里云ace考试内容是什么?
  17. ZZULIOJ:1035: 分段函数求值
  18. Channel Attention 通道注意力
  19. cadence allegro 之如何添加泪滴
  20. 【生产者消费者模型】

热门文章

  1. Kotlin 基础 - 数据类型
  2. 开发团队测试的难与易
  3. Linux命令大总结(早期学习时的笔记)
  4. 【CodeForces 577C】Vasya and Petya’s Game
  5. Avalonia-.NET 的跨平台 UI 框架
  6. Spring4Shell的漏洞原理分析
  7. 基于事件驱动架构构建微服务第19部分:使用 SignalR 和 Azure Active Directory 构建和保护实时通信...
  8. WPF MVVM实例三
  9. 深入LINQ | 动态构建LINQ表达式
  10. 分布式数据库一定会替代Oracle吗?