.NET Core MVC基础之页面传值方式📃
.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基础之页面传值方式📃的更多相关文章
- MVC 向页面传值方式总结(2)
MVC 向页面传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Mo ...
- MVC中页面传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...
- dotNET5的MVC页面传值方式总结
本文大致讲解mvc前后端的传值方式,包括control向view.view向control.以及action向action. 一.经典回顾 二.Controller向View传值 1. ViewBag ...
- iOS页面传值方式
普遍传值方式如下: 1.委托delegate方式: 2.通知notification方式: 3.block方式: 4.UserDefault或者文件方式: 5.单例模式方式: 6.通过设置属性,实现页 ...
- MVC 向页面传值方式总结(1)
ViewData传值. HomeController.cs Co de: public ActionResult Index() { ViewData["Title" ...
- 你想要的都在这里,ASP.NET Core MVC四种枚举绑定方式
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- ASP.NET Core MVC四种枚举绑定方式
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- 第十九节:Asp.Net Core WebApi基础总结和请求方式
一. 基础总结 1.Restful服务改造 Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方 ...
- ASP.NET MVC Controller向View传值方式总结
Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...
- ios常见的页面传值方式
iOS页面间的传值细分有很多种,基本的传值方式有三种:委托Delegate传值.通知NSNotification传值.Block传值,其他在项目中可能会遇到的还有:UserDefault或文件方式传值 ...
随机推荐
- RocketMQ 事件驱动:云时代的事件驱动有啥不同?
前言: 从初代开源消息队列崛起,到 PC 互联网.移动互联网爆发式发展,再到如今 IoT.云计算.云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头. 目前,消息中间件在国内许多行业 ...
- Mac Docker 挂载数据卷失败
问题描述: docker: Error response from daemon: Mounts denied: The path /srv/docker/bind is not shared fro ...
- flask-wtf和WTForms官网翻译详解
https://flask-wtf.readthedocs.io/en/stable/# https://wtforms.readthedocs.io/en/2.3.x/ 介绍: wtformflas ...
- 图片GPS度分秒转换经纬度
图片位置信息转化经纬度 1 public static String strToLatOrLng(String str) { 2 int i = str.lastIndexOf("°&quo ...
- linux下使用fdisk进行磁盘分区详解
目录 一.前言 二.关于磁盘分区的结构 三.fdisk命令详解 四.使用fdisk进行磁盘分区 4.1 磁盘分区规划 4.2 fdisk进行磁盘分区 4.3 格式化分区 4.4 创建挂载点/挂载目录 ...
- 使用Redis实现短信登陆
使用Redis实现发送验证码:验证码登陆.注册:登陆校验拦截.登陆状态刷新等一系列问题. 验证码发送和验证登陆注册 思路流程 整体的思路以及流程如题: 代码实现 实体类 User实体类 @Data @ ...
- C#的奇技淫巧:利用WinRM来远程操控其他服务器上的进程
前言:有时候远程服务器的进程你想偷偷去围观一下有哪些,或者对一些比较调皮的进程进行封杀,或者对一些自己研发的服务进行远程手动启动或者重启等,又不想打开远程桌面,只想悄咪咪地执行,那也许下面的文章会 ...
- Linux之top命令分析
第一行: top - 04:25:26 当前系统时间 up 3 min, 系统已经运行的时间(不间歇的运行) 1 user, 当前登录系统的用户数 load average: 0.01, 0.03, ...
- CSS操作——边框属性
1.border-style(边框风格) 定义边框的风格,值可以有: /* none:没有边框,当border的值为none的时候,系统将会忽略[border-color] hidden:隐藏边框,低 ...
- Json.Net Deserialize a Collection from BSON
Deserialize a Collection from BSON (newtonsoft.com) This sample sets ReadRootValueAsArray to true so ...