ASP.NET Core----基础学习05----将数据传递给视图文件的五种情况

1. 类型一:使用ViewData将数据传递给视图文件(默认视图文件)

step1: 创建Views/Home 文件夹 ,并创建Privacy.cshtml 文件,内容如下

在这里插入图片描述

# Privacy.cshtml


@using ASP.Net_Blank.Models;

@{
	// 此处使用 as 是方便最终调用@stu的时候与Student类关联,最终方便读取到属性Name、ClassName等。
    var stu = ViewData["Student"] as Student;
}

<!DOCTYPE html>
    <html>
    <head>
        <title>
        @ViewData["PageTitle"]
        </title>
    </head>
    <body>
        <div>
            @stu.Name
        </div>
        <div>
            @stu.ClassName
        </div>
        <h3>
            this is from Views/Home/Privacy.cshtml
        </h3>
    </body>
    </html>


step2: HomeController.cs 的函数如下:
在这里插入图片描述


step3: 最终显示效果如下:
在这里插入图片描述


2. 类型二:自定义选择视图文件 并传递ViewData数据

step1:参照如上步骤,创建文件夹MyViews/Home ,并创建文件Privacy.cshtml

在这里插入图片描述

@*Privacy.cshtml文件*@
@* 方式二:使用ViewData将数据传递给视图: *@


@using ASP.Net_Blank.Models;

<html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>@ViewData["PageTitle"]</title></head>
    <body>
        @{
            var student = ViewData["Student"] as Student;
        }

        <div>
            姓名: @student.Name
        </div>

        <div>
            ID : @student.Id
        </div>

        <div>
            班级: @student.ClassName
        </div>

        <h3>This is from MyViews/Home/Privacy.cshtml</h3>
    </body>
</html>


step2: Privacy函数,只需要在View中指定具体哪个视图文件即可

在这里插入图片描述


step3: 最终显示效果如下:
在这里插入图片描述


3. 类型三:使用ViewBag将数据传递给视图文件

step1:Privacy方法中的内容

  • 此处貌似不能使用自定义的视图函数,且没传递model数据,直接在视图文件中读取@ViewBag即可

在这里插入图片描述


step2:Privacy.cshtml 文件内容
在这里插入图片描述


step3: 最终显示效果如下:

在这里插入图片描述


4. 类型四:在视图文件中使用@model转化为强数据类型


step1: 在controller中的设置:
在这里插入图片描述


step2: 视图文件中的设置:

  • 注意: 此处引用的时候使用了@model ASP.Net_Blank.Models.Student , 而页面中使用的是大写的@Model
  • 此处cshtml文件中,可自动识别Student的属性

在这里插入图片描述

自动识别Student的属性:
在这里插入图片描述


step3: 最终显示效果:
在这里插入图片描述


5. 类型五:使用视图模型,将某视图文件需要的所有数据归纳到一个数据模型中


step1: 创建文件夹ViewModels 以及文件HomeDetailsViewModel.cs

在这里插入图片描述

在这里插入图片描述


step2: HomeController.cs文件中的设置
在这里插入图片描述


step3: 视图文件中的设置
在这里插入图片描述


step4: 最终显示效果
在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 14:42:07       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 14:42:07       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 14:42:07       62 阅读
  4. Python语言-面向对象

    2024-07-15 14:42:07       72 阅读

热门阅读

  1. C++ 分析一个链表是不是回文,有什么思路么

    2024-07-15 14:42:07       26 阅读
  2. druid 1.2.23版本配置监控页面

    2024-07-15 14:42:07       19 阅读
  3. Python学习1---深浅拷贝

    2024-07-15 14:42:07       20 阅读
  4. 多语言环境大师:在PyCharm中管理多个Python解释器

    2024-07-15 14:42:07       22 阅读
  5. SSLRec代码分析

    2024-07-15 14:42:07       21 阅读
  6. Linux系统之部署盖楼小游戏

    2024-07-15 14:42:07       20 阅读
  7. MySQL 其他

    2024-07-15 14:42:07       23 阅读
  8. 设计模式--工厂设计模式

    2024-07-15 14:42:07       23 阅读
  9. Windows图形界面(GUI)-SDK-C/C++ - 组合框(ComboBox)

    2024-07-15 14:42:07       27 阅读
  10. vue3实现一个接球小游戏

    2024-07-15 14:42:07       19 阅读
  11. 安装 MySQL与修改配置流程

    2024-07-15 14:42:07       19 阅读
  12. html dialog不显示边框

    2024-07-15 14:42:07       24 阅读