创建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方法中输入三种传值方式代码

cs 复制代码
  //ViewData
  ViewData["Viewmessage"] = "hello ViewData";
         
  //ViewBag
  ViewBag.message = "hello ViewBag";
  //TempData

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

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

cs 复制代码
<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页面,效果如下

相关推荐
AI 小老六4 分钟前
Google AX 控制面拆解:分布式 Agent 如何把断点恢复、审计策略和执行调度收进同一条链路
人工智能·分布式·后端·ai·架构·ai编程
YHHLAI7 分钟前
从零搭建一个 RESTful Todo 服务 —— Bun + TypeScript 全栈最小闭环
后端·typescript·restful
小闹54915 分钟前
一个 65 行的小需求,我让 Claude Code 跑了 25 个 agent、整整两小时
后端·claude
天青色等烟雨..17 分钟前
智慧农林核心遥感技术99个案例实践
运维·人工智能·spring boot·后端·自动化
西安邮电大学21 分钟前
贪心算法详细讲解
java·后端·其他·算法·面试
橙序员小站25 分钟前
从"夯"到"拉":谷歌苹果华为开发者大会,谁在裸泳?
人工智能·后端
HjhIron44 分钟前
从零实现一个待办事项应用:前端必学的Ajax与Node.js实战
前端·后端
浩风祭月1 小时前
我用 AI 辅助重构了遗留项目的认证模块:从明文存储到 OAuth 2.0 的安全升级
后端·php·ai编程
用户34232323763171 小时前
数据质量与异常检测——当采集系统学会了“怀疑“
后端