asp.net core mvc中的viewdata和viewbag的用法

在ASP.NET Core MVC中,ViewDataViewBag都是用于在控制器中传递数据给视图的方式,但它们在实现上有一些区别。

ViewData是一个ViewDataDictionary对象,它是一个字典,可以通过键值对的方式传递数据。你可以像这样在控制器中设置ViewData

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

然后在视图中使用ViewData来获取这个值:

<h1>@ViewData["Message"]</h1>

ViewData只能存储动态类型的数据,因此在视图中使用时需要进行强制类型转换。

ViewBag是一个动态属性,它允许你在控制器中动态地设置属性并在视图中使用。你可以像这样使用ViewBag

public IActionResult Index()
{ViewBag.Message = "Hello, World!";return View();
}

然后在视图中使用ViewBag来获取这个值:

<h1>@ViewBag.Message</h1>

ViewBag不需要使用强制类型转换,因为它是动态类型的。

总的来说,ViewDataViewBag都是用于在控制器和视图之间传递数据的方式,选择使用哪种方式主要取决于你的个人偏好和具体的应用场景。

当在控制器中传递数据给ViewDataViewBag时,它们也可以传递复杂类型的数据,如对象或集合。

在控制器中通过ViewData传递对象的示例:

public IActionResult Index()
{var user = new User { Name = "John", Age = 25 };ViewData["UserInfo"] = user;return View();
}

在视图中通过ViewData获取对象的示例:

<h1>@((User)ViewData["UserInfo"]).Name</h1>
<p>@((User)ViewData["UserInfo"]).Age</p>

在控制器中通过ViewBag传递对象的示例:

public IActionResult Index()
{var user = new User { Name = "John", Age = 25 };ViewBag.UserInfo = user;return View();
}

在视图中通过ViewBag获取对象的示例:

<h1>@((User)ViewBag.UserInfo).Name</h1>
<p>@((User)ViewBag.UserInfo).Age</p>

注意,当使用ViewDataViewBag传递复杂类型的数据时,需要在视图中进行类型转换。

另外,需要注意的是,ViewDataViewBag都是短暂存储数据的方式,它们只存在于当前请求的生命周期内。如果需要在多个请求之间传递数据,可以考虑使用TempDataSession

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Python里xlwings库对Excel表格的操作(三十)

这篇小笔记主要记录如何【如何使用“Chart类”、“Api类"和“Axes函数”为新图表设置标题文本内容、字体、字号、粗细、正斜、颜色、坐标轴主要网格线】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】…

LeetCode每周五题_2024/01/01~2024/01/05

文章目录 1599. 经营摩天轮的最大利润 [2024/01/01]题目题解 466. 统计重复个数 [2024/01/02]题目题解 2487. 从链表中移除节点 [2024/01/03]题目题解 1599. 经营摩天轮的最大利润 [2024/01/01] 题目 1599. 经营摩天轮的最大利润 你正在经营一座摩天轮&#xff0c;该摩天轮共…

Maple 各版本安装指南

Maple 下载链接 https://pan.baidu.com/s/11hKo1XxZGa0xv3Ivj6fbEA?pwd0531 1.鼠标右击【Maple 2023】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Maple 2023】。 2.打开解压后的文件夹&#xff0c;鼠标右击【Setup】选择【以管理员身…

计算机毕业设计------SSM的公寓房屋出租系统

项目介绍 该项目分为前后台&#xff0c;分为普通用户与管理员两种角色。 前台主要功能包括&#xff1a; 普通用户的注册、登录,房屋列表展示&#xff0c;租房&#xff0c;我的订单、用户中心等功能模块&#xff1b; 后台主要功能包括&#xff1a; 系统设置&#xff1a;菜单管…

记一次docker中安装redis的过程

1. Docker搜索redis镜像 docker search redis2. Docker搜索redis镜像 docker pull redis3.Docker挂载配置文件 挂载 redis 的配置文件挂载 redis 的持久化文件&#xff08;为了数据的持久化&#xff09;。 conf文件位置&#xff1a; /home/redis/myredis/redis.conf data文件…

线程池的运行原理和使用案例

在日常开发中&#xff0c;如果需要使用到多线程&#xff0c;最简单的方式是 new Thread&#xff0c;但是这种方式有很大弊端&#xff1a; 首先new Thread 是比较消耗系统性能的&#xff0c;性能比较差&#xff1b;线程缺乏统一的管理&#xff0c;会无限制的创建新线程&#xf…

57个Linux常用命令含参数介绍和使用示例

点击下载《57个Linux常用命令含参数介绍和使用示例》 1. pwd 作用&#xff1a;显示当前所在的工作目录的全路径名称 //显示当前目录 pwd该命令无需任何参数&#xff0c;只需在终端窗口中输入 pwd 命令即可使用。 2. cd 作用&#xff1a;更改当前工作目录。 //跳转目录至D…

航空业数字化展翅高飞,开源网安专业服务保驾护航

​某知名航空公司是中国首批民营航空公司之一&#xff0c;运营国内外航线200多条&#xff0c;也是国内民航最高客座率的航空公司之一。在数字化发展中&#xff0c;该航空公司以数据驱动决策&#xff0c;通过精细化管理、数字创新和模式优化等方式&#xff0c;实现了精准营销和个…

day58算法训练|单调栈part01

参考&#xff1a;代码随想录 单调栈的使用情况&#xff1a; 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置&#xff0c;此时我们就要想到可以用单调栈了。时间复杂度为O(n)。 单调栈的本质是空间换时间&#xff0c;因为在遍历…

依赖属性(Dependency Properties)和常规的 CLR 属性

在 WPF 中&#xff0c;有两种主要的属性类型可以用于数据绑定&#xff1a;依赖属性&#xff08;Dependency Properties&#xff09;和常规的 CLR 属性&#xff0c;后者通常与 INotifyPropertyChanged 接口结合使用。 依赖属性&#xff08;Dependency Properties&#xff09; …

10款值得推荐的Blazor UI组件库

前言 经常看到有小伙伴在DotNetGuide技术社区交流群里问有什么好用的Blazor UI组件库推荐的&#xff0c;本文将分享一些开源、实用、美观的Blazor UI组件库&#xff0c;提供给广大C#/.NET开发者们学习和使用&#xff08;注意&#xff1a;排名不分先后&#xff0c;都是十分优秀…

(每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第2章 信息技术发展(一)

博主2023年11月通过了信息系统项目管理的考试&#xff0c;考试过程中发现考试的内容全部是教材中的内容&#xff0c;非常符合我学习的思路&#xff0c;因此博主想通过该平台把自己学习过程中的经验和教材博主认为重要的知识点分享给大家&#xff0c;希望更多的人能够通过考试&a…

Python内置类属性__module__属性的使用教程

概要 在Python中&#xff0c;每个对象都有一些内置的属性&#xff0c;这些属性提供了有关对象的一些信息。其中一个内置属性是__module__属性。__module__属性是一个字符串&#xff0c;它表示定义了类或函数的模块的名称。在本篇文章中&#xff0c;我们将详细介绍__module__属…

BUUCTF——Reverse——[GXYCTF2019]luck_guy

1、题目 2、工具 Exeinfo PE&#xff1a;查壳工具。IDA&#xff1a;是一款功能强大的反汇编工具&#xff0c;用于分析和逆向工程二进制文件。python&#xff1a;编写自动化脚本。 3、方法 下载压缩包&#xff0c;解压得到一个没有后缀的文件。 用Exeinfo PE查询该文件是否加…

sql:定时执行存储过程(嵌套存储过程、使用游标)

BEGINDeclare FormNo nvarchar(20) --单号Declare Type nvarchar(50) --类型Declare PickedQty float -Declare OutQty float Declare 生产量 floatDeclare 已装箱数量 float Declare 已入库数量 floatDeclare 损耗数量 float Declare 退货品出库数量 intdeclare k c…

C++面向对象编程与泛型编程(GP)

C既支持面向对象编程&#xff0c;又支持泛型编程 1.面向对象编程 将数据结构与处理方法&#xff08;容器与算法&#xff09;组成对象封装在一个类中&#xff0c;通过类的封装隐藏内部细节&#xff0c;可以使用继承&#xff0c;多态等方法。 注意&#xff1a;list容器本身带有…

基于SpringBoot的有光摄影分享网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的有光摄影分享网站,java…

【计算机毕业设计】SSM实现的在线农产品商城

项目介绍 本项目分为前后台&#xff0c;且有普通用户与管理员两种角色。 用户角色包含以下功能&#xff1a; 用户登录,查看首页,按分类查看商品,查看新闻资讯,查看关于我们,查看商品详情,加入购物车,查看我的订单,提交订单,添加收获地址,支付订单等功能。 管理员角色包含以…

LiveGBS国标GB/T28181流媒体平台功能-国标级联中作为下级平台对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话

LiveGBS国标级联中作为下级平台对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话 1、GB/T28181级联是什么2、搭建GB28181国标流媒体平台3、获取上级平台接入信息3.1、如何提供信息给上级3.2、上级国标平台如何添加下级域3.2、接入LiveGBS示例 4、配置国标…

Linear Regression 线性回归

深度学习&#xff1a; 数据集模型选择训练&#xff08;KNN不需要&#xff09;推理&#xff08;预测&#xff09; 假设学生用x小时学习深度学习&#xff0c;能够得要y分数&#xff1a; 那么学习4小时&#xff0c;能够得到多少分&#xff1f; 用已知数据作为训练集&#xff1a…