关于控制器与视图之间参数传递

一. Controller 向View传递参数

1. ViewData

//底层源码中ViewData的定义如下  ControllerBase类中的属性
public ViewDataDictionary ViewData {get;set;}

ViewData本身是ViewDataDictionary字典类型
public class ViewDataDictionary: IDictionary<string,object>{}

ViewData中存放的是键值对数据。ViewData只在一次HTTP请求中有效,当这次请求结束后会自动清空其值。

语法使用如下:

//使用ViewData从控制器传递文本数据到视图
ViewData["Message"] = "这里是我要传递的数据";

View 取值

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

2. ViewBag

[Dynamic]
public ynamic ViewBag{ get; }

dynamic 类型的变量都会编译为object类型的变量,dynamic只存在于编译时刻。

使用语法如下:

ViewBag.Name = "李四";

取值

<body>
    <h1> @ViewBag.Name </h1>
<body>

3. TempData

ViewData属性与ViewBag属性无法跨Action()方法传递数据,当需要在Action()方法之间传递数据时,可采用TempData属性。

HomeController.cs 代码:

TempData["Message"] = "TempData传递数据";

/Views/home/index.cshtml 代码:

<a href="/home/about"></a>

/Views/home/about.cshtml 代码:

<body>
    <h1> @TempData["Message"] </h1>
<body>

TempData可以跨视图传递
控制器每次从Session中获取TempData后,就会清楚Session中的TempData数据。每次请求结束后TempData的生命周期同时结束。

二. View向Controller传递参数

.cshtml 代码
在这里插入图片描述

Controller 代码
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值