创建Asp.net MVC项目实现视图页面数据传值显示

news2025/2/28 17:07:54

MVC中视图传值

ViewData

ViewBag

TempData

举例创建三中传值方式实现页面数据展示


MVC中视图传值

Asp.net MVC中Controller向View传值有多种方式,这里简单说一下其中3种方式

ViewData、ViewBag和TempData

ViewData

ViewData存储数据,ViewData的声明和赋值方式与Session对象相同,直接通过编写ViewData[键值的名称]=XXX进行相应的键值的赋值。如果需要在页面中进行相应的值的呈现,只需要输出ViewData[键值的名称]即可。

ViewData是通过 string键访问的ViewDataDictionary  对象。 字符串数据可以直接存储和使用,而不需要强制转换,但是在提取其他 ViewData对象值时必须将其强制转换为特定类型。 可以使用 ViewData将数据从控制器传递到视图,以及在视图(包括分布视图和布局)内传递数据。

例如Control中

  ViewData["message"] = "hello ViewData";

视图中

    <h1>ViewData</h1>
  
    <p>
        @ViewData["message"]
    </p>

ViewBag

ViewBag是一个dynamic动态类型,定义在ControllerBase类中,可以在此对象上定义任意的属性,且还可以在控制器和视图之间传递数据。

ViewBag的用法是可以在此对象上定义任意名称的变量。基本格式如下:

ViewBag.变量名=值

如:ViewBag.Title=“hello”,ViewBag.Sum=600等。

与viewdata区别:ViewData是字典集合,存放的是键值对,ViewBag在使用方法上和ViewData几乎一样,但是底层实现确实完全不同,ViewBag最大的有点就是他不需要转型就可以使用里面的值,但是ViewData就需要转换成合适的类型

TempData

 同ViewData和ViewBag一样,TempData也可以用来向视图传递数据。只是ViewData和ViewBag的生命周期和View相同,只对当前View有用。而TempData则可以在不同的Action中进行传值,类似webform里的Seesion

如:  TempData["message"] = "Hello TempData!";

举例创建三中传值方式实现页面数据展示

首先打开vs2022创建新项目

选择asp.net Web应用程序

 输入项目名称,点击创建

 

这里选择空后勾选MVC,点击创建

 创建后在Controllers文件夹右键创建控制器

 默认创建DefaultController控制器

 右键控制器方法index添加视图

 视图名称不用改下面去掉勾选,后添加

在index方法中输入三种传值方式代码

  //ViewData
  ViewData["Viewmessage"] = "hello ViewData";
         
  //ViewBag
  ViewBag.message = "hello ViewBag";
  //TempData

  TempData["message"] = "Hello TempData!";

然后在视图页面也就是View文件夹下的index.cshtml页面输入如下代码

<div>
    <h1>ViewData</h1>
  
    <p>
        @ViewData["Viewmessage"]
    </p>
</div>
<h1>ViewBag</h1>

<p>
    @ViewBag.message
</p>
<h1>TempData</h1>
<p>
    @TempData["message"]
</p>

运行index.cshtml页面,效果如下

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

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

相关文章

BGP笔记全

自治系统---AS 定义&#xff1a;由一个单一的机构或者组织所管理的一系列IP网络及其设备所构成的集合。 AS划分的原因 如果整张网络很大&#xff0c;路由数量进一步增加&#xff0c;路由表规模变得太大&#xff0c;会导致路由收敛速度变慢&#xff0c;设备性能消耗加大&#…

C++11——initializer_list

initializer_list的简介 initializer_list是C11新出的一个类型&#xff0c;正如类型的简介所说&#xff0c;initializer_list一般用于作为构造函数的参数&#xff0c;来让我们更方便赋值 但是光看这些&#xff0c;我们还是不知道initializer_list到底是个什么类型&#xff0c;…

【小聆送书第一期】让架构师的成神之路温暖你这个不景气的冬天

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言 书籍一览 ⛳️书籍一⛳️书籍二⛳️书籍三⛳️书籍四⛳️书籍五⛳️书籍六⛳️书…

Git和Git小乌龟安装

目录 Git简介 Git安装 Git小乌龟简介 Git小乌龟安装 Git简介 Git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地进行从很小到非常大的项目的版本管理。它最初是由Linux Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git具有速度、…

LeetCode(42)有效的字母异位词【哈希表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 有效的字母异位词 1.题目 给定两个字符串 *s* 和 *t* &#xff0c;编写一个函数来判断 *t* 是否是 *s* 的字母异位词。 **注意&#xff1a;**若 *s* 和 *t* 中每个字符出现的次数都相同&#xff0c;则称 *s* 和 *t* 互为字…

怎么样的软件测试工程师才算“大神”?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

Bug 检查 0x7B:INACCESSIBLE_BOOT_DEVICE(未解决)

环境&#xff1a; HP ProDesk 480 G7 Win10 专业版 问题描述&#xff1a; INACCESSIBLE_BOOT_DEVICE bug 检查的值为0x0000007B。 此 bug 检查表明 Microsoft Windows 操作系统在启动过程中无法访问系统分区 原因&#xff1a; 1.INACCESSIBLE_BOOT_DEVICE bug 检查经常发生…

python基于YOLOv6最新0.4.1分支开发构建钢铁产业产品智能自动化检测识别系统

在前文中陆续基于不同类型的目标检测模型开发构建了钢铁产业产品缺陷质检系统&#xff0c;关于yolov6除了刚提出的时候有过使用&#xff0c;后续使用较少了&#xff0c;今天就以yolov6最新0.4.1分支模型为基准来开发实践目标检测项目开发。 首先看下实例效果&#xff1a; 官方…

2023最新的软件测试热点面试题(答案+解析)

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

uniapp小程序项目连接微信客服【最新/最全教程】

目录 文档微信官网文档图片微信小程序客服配置官网 效果图聊天地址手机微信电脑端 微信聊天功能实现微信小程序后台添加客服微信号以及配置代码实现参考最后 文档 微信官网文档 微信官网文档 图片 微信小程序客服配置官网 微信小程序客服配置官网 效果图 聊天地址 地址 手…

Findreport中框架图使用的注意事项

目录 简介 测试数据 闭环链路关系 解决办法&#xff1a; 根不唯一 解决办法&#xff1a; 简介 在框架图的应用中&#xff0c;一些表达上下游关系的数据非常适合用于做链路图相关的报表。可以展示成雪花图&#xff0c;普通架构图。但是在实际操作中有几点关于数据的注意事…

链式栈基础

一.链式栈的栈顶在哪里? 二.链栈的结构: typedef struct LSNode { int data; struct LSNode* next; }LSNode ,*PLStack; //链栈的节点.由于栈顶在第一个数据节点,所以不需要top指针 三.链式栈的实现: //初始化 void InitStack(PLStack ps) { assert(ps ! NULL); if …

IBM ServeRAID M1015阵列卡 支持RAID5,需要配件

最近一台IBM x3400m3的旧服务器&#xff0c;折腾一下&#xff0c;要添置硬盘&#xff0c;重做RAID&#xff0c;阵列卡是ServeRAID M1015&#xff0c;默认进去WebBIOS&#xff0c;只有RAID0和RAID1&#xff0c;没有RAID5&#xff0c;参考官方原版的手册&#xff0c;如下图&#…

centos系列:【 全网最详细的安装配置Nginx,亲测可用,解决各种报错】

全网最详细的安装配置Nginx&#xff0c;亲测可用&#xff0c;解决各种报错 全网最详细的安装配置Nginx1、 安装环境依赖2、 下载Nginx包3、编译Nginx4、安装Nginx5、启动Nginx6、配置Nginx7、了解Nginx服务的主配置文件 nginx.conf8、基于授权的访问控制9、基于IP和端口的访问控…

【Redis基础】Redis基本的全局命令

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; Redis基本的全局命令 1&#xff0c;KEYS命令 语法&#xff1a;KEYS pattern KEYS命令用来查询服…

vivado综合分析与收敛技巧2

1、分解深层存储器配置 &#xff0c; 实现功耗与性能平衡 在深层存储器配置中 &#xff0c; 可使用综合属性 RAM_DECOMP 实现更好的存储器分解并降低功耗。此属性可在 RTL 中设置。将RAM_DECOMP 属性应用于存储器时 &#xff0c; 存储器是在较宽的原语配置中设置的 &#x…

Kubernetes(K8s)-Kubernetes介绍-01

Kubernetes介绍 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a; 互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程…

现代C++之万能引用、完美转发、引用折叠

现代C之万能引用、完美转发、引用折叠 0.导语1.问题引入2.引入万能引用3.万能引用出现场合4.理解左值与右值4.1 精简版4.2 完整版4.3 生命周期延长4.4 生命周期延长应用5.区分万能引用6.表达式的左右值性与类型无关7.引用折叠和完美转发7.1 引用折叠之本质细节7.2 示例与使用7.…

IO多路复用就这么简单?

通过本文你可学到&#xff1a; 阻塞IO、非阻塞IO的区别、优缺点&#xff1b; IO多路复用的原理&#xff0c;为什么高性能&#xff1b; select原理、优缺点&#xff1b; poll原理、优缺点&#xff1b; epoll原理、优缺点 select、poll、epoll 到底是同步IO还是异步IO? ep…

CSS核心功能手册:从熟悉到精通

CSS核心功能代码 文章目录 CSS核心功能代码[toc]参考HTML代码尺寸操作设置元素尺寸内边距外边距设置默认布局边距用途和使用场景&#xff1a; 背景设置**背景颜色 (background-color)**:**背景图像 (background-image)**:**背景重复 (background-repeat)**:**背景位置 (backgro…