ASP.NET

.Net Core 3.x MVC 了解MVC

2020-10-13  本文已影响0人  单程车票_SJ

1. 添加 一个模型实体(M) 

项目 -> Models文件 右键 -> 添加 -> 新建项

实体写相关的属性

public class CurrentUser

{

        public int Id { get; set; }

        public string Name { get; set; }

        public string Account { get; set; }

        public string Password { get; set; }

        public string Email { get; set; }

        public string Role { get; set; }

        public DateTime LoginTime { get; set; }

}

2. 添加一个控制器 (C)

项目 -> Controllers文件 右键 -> 添加 -> 控制器

修改控制器名称 -> 添加

创建完成后看到控制器的代码

先修改一下返回View,返回一个模型对象

3. 添加一个视图 (M)

在刚建好的控制器 FirstController 中,有个Index的方法 -> 右键 ->添加视图

Razor 视图 -> 添加

这里直接点 -> 添加 (这里第一次这样添加视图的话会慢,要安装工具,觉得慢可以自己手动添加文件也可以)

完成后,会出现红色圈里的文件 

然后我们修改这个 First 下的 index.cshtml 文件,获取刚才后端view返回的实体数据

注意 :红线要不要漏了。 @model 是在页面代码最上面实体的声明,接下来就可以在页面里使用Model(这里的实体就是指 CurrentUser 实体),并且此时的Model已经是强类型了,我们可以点出具体的属性,非常方便

打开 Startup.cs ,修改 UseEndpoints 中间件

最后我们就可以按F5看看编译后的效果了

注意:浏览器打开后默认是首页,需要手动输入红圈的页面地址

4.上面是mvc基本的Model方式传值,mvc中有4种方式 (ViewData,ViewBag,TempData,Model)

我们把 控制器 FirstController 代码进行升级,添加其它3种传值方式。

视图 /Views/First/Index.cshtml 代码修改,红框把对象转实体

ViewData :很简单的传值方式,相当于有一个字典存储

ViewBag :ViewBag就是一个dynamic对象,同时里面的内容和ViewData是同一个字典,也就是说ViewBag和ViewData的键会覆盖 

TempData :TempData和ViewData的用法一样。TempData和ViewData的内容不冲突,分别是两个字典。TempData是基于Session传递的,所以如果没有引入Session将失效。如果存在页面跳转,TempData有效,其它的无效。


下一章《通过 Session 来简单的了解一下管道和中间件的概念》

上一篇 下一篇

猜你喜欢

热点阅读