×

ASP.NET Core MVC学习之路(三)

独孤求败 独孤求败 发表于2026-05-08 14:18:26 浏览41 评论0

抢沙发发表评论

1、Model模型

Model是应用程序中用于表示数据结构和业务逻辑的一种抽象,充当MVC模式中的“M”部分。它主要承担以下职责:

  • 数据结构定义‌:定义应用程序中的实体、对象和数据字段
  • 业务逻辑封装‌:包含与数据相关的业务规则,如验证规则、计算逻辑和数据转换
  • 数据管理‌:负责管理应用程序的数据、状态和业务规则

    2、Model的实现方式

    2.1 基本模型类

    ASP.NET Core MVC中,模型通常以POCO(Plain Old CLR Object)类的形式实现。这些类通常位于项目的Models文件夹中,但这不是强制要求,只是一种良好的组织实践。

  • 如:

  • public class Movie

    {

        public int ID { get; set; }

        public string Title { get; set; }

        public DateTime ReleaseDate { get; set; }

        public string Genre { get; set; }

        public decimal Price { get; set; }

    }

    2. 2数据验证

  • ASP.NET Core MVC通过数据注释验证属性支持模型验证‌1官网。常用的验证注解包括:

    • 表单数据绑定
    • 查询字符串参数绑定
    • 路由数据绑定
    • JSON/XML请求体绑定
    • [Required]

      :指定属性为必需
    • [StringLength]

      :限制字符串长度
    • [Range]

      :指定数值范围
    • [DataType]

      :指定数据类型
    • [CustomValidation]

      :用于自定义验证逻辑
    • 如:
    • public class Product

      {

          [Required]

          [StringLength(100)]

          public string Name { get; set; }


          [Range(0, 1000)]

          public decimal Price { get; set; }


          [CustomValidation(typeof(CustomValidator), "ValidateProductName")]

          public string ProductName { get; set; }

      }

    • 2.3 数据库集成

      Model通常与Entity Framework Core集成,通过数据库上下文类进行数据访问:

      public class MvcMovieContext : DbContext

      {

          public MvcMovieContext(DbContextOptions<MvcMovieContext> options) 

              : base(options) { }


          public DbSet<Movie> Movie { get; set; }

      }

      Startup.csProgram.cs中注册数据库上下文:

      services.AddDbContext<MvcMovieContext>(options =>

          options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));

    • 3、Model的最佳实践


      4、模型绑定

      ASP.NET Core MVC支持模型绑定,自动将HTTP请求数据映射到模型对象。这包括:

      通过合理的Model设计,ASP.NET Core MVC能够实现清晰的关注点分离,提高代码的可维护性和可测试性。

    • 5、在程序中添加Model

    • 1)选中Model文件夹,右键--》添加--》类

    1. 关注点分离‌:Model应专注于数据表示和业务逻辑,不包含视图或控制器逻辑
    2. 依赖注入‌:通过构造函数注入数据库上下文等服务
    3. 强类型视图‌:控制器将强类型化的模型传递给视图,使视图具备类型检查和IntelliSense支持‌
    4. 验证逻辑‌:在服务器端和客户端都执行验证,确保数据有效性

图片

在新的弹窗中,选择类,修改名字,点【添加】按钮,完成添加

图片

6、在程序中添加Model

在Movie中,根据需要,新增对应字段

图片

7、在程序中添加Model

在前台Index页面绑定Model,并在Html中赋值

图片

8、在Controller中绑定数据

注意绑定完成后,要给前台页面返回数据

图片

9、启动程序,效果如下

图片

群贤毕至

访客