当前位置: 首页 > article >正文

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

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.kler.cn/a/156352.html

相关文章:

  • 【教程】华南理工大学国际校区宿舍门锁声音设置
  • Spark 核心概念与宽窄依赖的详细解析
  • LLMs之MindFormers:基于国产硬件华为Atlas针对GLM-4-9B实现模型全参微调(单机8卡)→模型推理(单卡多batch推理)
  • 从0开始机器学习--Day23--支持向量机
  • 智慧仓储物流可视化平台
  • 晨控RFID技术助力半导体制造业革新之路
  • leetCode 39.组合总和 + 回溯算法 + 剪枝 + 图解 + 笔记
  • minio服务端搭建使用
  • 智能手表上的音频(四):语音通话
  • ROS-ROS通信机制-话题通信
  • 免费的SEO外链发布工具,提升排名的利器
  • springboot集成springsecurity
  • Web3之L2 ZK-Rollup 方案-StarkNet
  • 怎样使用rtsp,rtmp摄像头低延时参于Web视频会议互动直播
  • 网工学习9-STP配置(二)
  • 抖音直播间自动发言评论软件:开发技术分析与核心代码分享
  • 二、DVP摄像头调试笔记(dvp外设驱动篇、寄存器篇)
  • js选中起始时间使用标准时间毫秒值计算一年后的当前少一天的日期(并考虑闰年)
  • 【拓展】Loguru:更为优雅、简洁的Python 日志管理模块
  • COMP4121Advanced Algorithms
  • Linux4.8、环境变量续
  • css3新增的伪类有哪些?
  • SpringTask入门案例
  • linux具体命令(持续更新中)
  • 分页助手入门以及小bug,报sql语法错误
  • OGG实现Oracle19C到postgreSQL14的实时同步