关于MVC设计模式下的Model

内容1:

1.大多数情况下,会有两个关于Model的文件。

  一个称他为Entity Model,他里面的字段一般是与数据库直接交互的,也就是说,Entity里面每一个字段赋予的属性都是对应着数据库来的。

  还有一个称之为View Model,这个呢,他是间接与数据库交互的,比如:我们数据库有个字段是某人的出生年月,但是我的View里面想显示的是某人的年龄,因此,我的View Model里面必须要建立一个年龄字段并赋予其属性,而具体由数据库里面的出生日期转换成年龄的函数在其他位置出现。

关于MVC设计模式下的Model_第1张图片

过程:

1.首先,Entity是必须的,此外需要创建一个View Model,并编好对应的字段。

关于MVC设计模式下的Model_第2张图片

2.字段转换

关于MVC设计模式下的Model_第3张图片

重写一下:

关于MVC设计模式下的Model_第4张图片

3.View实现可视化

关于MVC设计模式下的Model_第5张图片

重写后的view:

关于MVC设计模式下的Model_第6张图片

 

 

扩展:TagHelpers的使用

关于MVC设计模式下的Model_第7张图片

即在View中引入asp-:

关于MVC设计模式下的Model_第8张图片

 

内容2:View Model的输入 Post:

1.创建Creat方法并赋予其属性:

  在View中,对用的方法对应着具体的Get和Post:

关于MVC设计模式下的Model_第9张图片

 2.如下:model调用Post

关于MVC设计模式下的Model_第10张图片

3.以上可完成数据输入的工作,但存在两个Bug。

  1)是否可以确保输入的数据可以保存下来。

  2)刷新后出现重复存储。

解决方案1:在配置文件里修改注入。

关于MVC设计模式下的Model_第11张图片

解决方案2:

  如图粉红框框,刷新后跳转至Detail,未重定项,重复输入。

关于MVC设计模式下的Model_第12张图片

  重定项:Post-Redirect-Get

  1)设置重定项位置:

关于MVC设计模式下的Model_第13张图片

  2)重定项实现:

关于MVC设计模式下的Model_第14张图片

 

内容3:Data Annotaions(数据注解)

1.如下图所示,代码中Data Annotaions的用法:

关于MVC设计模式下的Model_第15张图片

常用:

关于MVC设计模式下的Model_第16张图片

举例:

关于MVC设计模式下的Model_第17张图片

Post使用时必加项:

关于验证的使用举例:

关于MVC设计模式下的Model_第18张图片

View显示:

关于MVC设计模式下的Model_第19张图片

 

你可能感兴趣的:(关于MVC设计模式下的Model)