.NET Core MVC基础之页面传值方式

前言

最近工作太忙了,浅浅更新一下.NET基础知识。大部分面试官都会问.NET页面传值的几种方式,那么接下来就来细讲与实现一下吧!

页面传值分成两类

  • 第一类:控制器给视图传值
  • 第二类:视图给控制器传值

本篇文章主要讲控制器给视图传值

控制器->视图

弱类型数据

ViewData

ViewData是一个字典对象,可以在控制器中存储键值对,然后在视图中读取这些值。

ViewData 是通过 string 键访问的 ViewDataDictionary 对象

控制器:

public ActionResult Index()
{
ViewData["Message"] = "Hello, World!";
return View();
}

视图:

<div class="text-center">
<h1 class="display-4">@ViewData["Message"]</h1>
</div>

效果图:

ViewBag

ViewBag是一个动态属性,可以在控制器中动态添加属性,并在视图中读取这些属性。

控制器:

public IActionResult Index()
{
ViewBag.Message = "你好,加班的码农!";
return View();
}

视图:

<div class="text-center">
<h1 class="display-4">@ViewBag.Message</h1>
</div>

效果图:

TempData

用于在请求之间临时存储数据的一种机制。它类似于Session,但与Session不同的是,TempData的数据只在当前请求和下一个请求之间有效,之后就会被自动清除。

TempData 使用场景:

  • 在多个请求需要数据的情况下对重定向很有用。
  • 使用 cookie 或会话状态通过 TempData 提供程序进行实现。

控制器:

public ActionResult Index()
{
return View();
} public ActionResult NextPage()
{
TempData["Message"] = "你有加班费吗,就加班?";
return RedirectToAction("Index");
}

Index视图:

<div class="text-center">
<h1 class="display-4">@TempData["Message"]</h1>
</div>

效果图:

直接访问Index视图

访问控制器中的NextPage方法进行重定向

强类型数据

Model

Model是将数据传递给视图的最常用方式。在控制器中创建一个模型对象,并将数据赋值给模型的属性。然后在视图中声明模型类型,并使用@Model来读取实体

控制器:

public class User
{
public string UserName { get; set; }
} public IActionResult Index()
{
User u = new User();
u.UserName = "加班人";
return View(u);
}

视图:

@model User

<div class="text-center">
<h1 class="display-4">@Model.UserName</h1>
</div>

也可以传递集合

public IActionResult Index()
{
List<User> list = new List<User>()
{
new User() { UserName = "打工人1号" },
new User() { UserName = "打工人2号" }
};
return View(list);
}
@model List<User>

<div class="text-center">
@foreach (var m in Model)
{
<h1 class="display-4">@m.UserName</h1>
}
</div>

效果图:

参考链接

ASP.NET Core MVC 中的视图 | Microsoft Learn

.NET Core MVC基础之页面传值方式📃的更多相关文章

  1. MVC 向页面传值方式总结(2)

    MVC 向页面传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Mo ...

  2. MVC中页面传值方式总结

    MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...

  3. dotNET5的MVC页面传值方式总结

    本文大致讲解mvc前后端的传值方式,包括control向view.view向control.以及action向action. 一.经典回顾 二.Controller向View传值 1. ViewBag ...

  4. iOS页面传值方式

    普遍传值方式如下: 1.委托delegate方式: 2.通知notification方式: 3.block方式: 4.UserDefault或者文件方式: 5.单例模式方式: 6.通过设置属性,实现页 ...

  5. MVC 向页面传值方式总结(1)

    ViewData传值. HomeController.cs Co de: public ActionResult Index() {       ViewData["Title"  ...

  6. 你想要的都在这里,ASP.NET Core MVC四种枚举绑定方式

    前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...

  7. ASP.NET Core MVC四种枚举绑定方式

    前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...

  8. 第十九节:Asp.Net Core WebApi基础总结和请求方式

    一. 基础总结 1.Restful服务改造 Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方 ...

  9. ASP.NET MVC Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  10. ios常见的页面传值方式

    iOS页面间的传值细分有很多种,基本的传值方式有三种:委托Delegate传值.通知NSNotification传值.Block传值,其他在项目中可能会遇到的还有:UserDefault或文件方式传值 ...

随机推荐

  1. 2.docker-compose安装prometheus

    一.docker-compose安装 前期准备 # docker配置文件 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json < ...

  2. STM32的半主机与MicroLIB机制

    一.半主机模式 半主机机制的作用 半主机是作用于ARM目标的一种机制,可以将来自STM32单片机应用程序的输入与输出请求传送至运行仿真器的PC主机上.使用此机制可以启用C库中的函数,如printf() ...

  3. Oracle和达梦:根据外键名字查询表名

    根据外键名字查询表名 select * from user_cons_columns cl where cl.constraint_name = '外键名';

  4. ffmpeg7.0常用命令笔记 windows下

    1.多媒体格式转换 ffmpeg -i input.mov -acodec copy -vcodec copy out.mp4 2.从多媒体文件中抽取音频 ffmpeg -i input.mov -v ...

  5. Linux中的info page

    Linux系统中除了使用man来查询命名或者相关文件的用法,还可以使用info命令.与man命令不同的是,info命令将数据拆成一个一个段落,每个段落使用单独的页面编写,同时页面中还有类似超链接的功能 ...

  6. 应急响应web1

    应急响应的过程 目的:分析攻击时间.攻击操作.攻击结果.安全修复等并给出合理的解决方案. 保护阶段:直接断网,保护现场,看是否能够恢复数据: 分析阶段:对入侵过程进行分析,常见的方法为指纹库搜索.日志 ...

  7. Mybatis Plus的@TableId标签

    @TableId1.如果数据库字段设成user_id在初始生成后,在代码中会变成userId,不会设置成主键使用**@TableId(value="user_id",type = ...

  8. anaconda3部署以及使用详解

    Anaconda3-2019.10-Linux-x86_64.sh 某次执行Python程序,其中两个错误信息如下: ImportError: libcblas.so.3: cannot open s ...

  9. Python 潮流周刊#51:用 Python 绘制美观的图表

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  10. 安装 MySQL ZIP 版本

    安装 MySQL 的 ZIP 版本相对于安装包版本稍微复杂一些,因为它需要手动解压和配置.以下是在 Windows 上安装 MySQL ZIP 版本的步骤: 下载 MySQL ZIP 文件: 前往 M ...