.NET MVC第三章、三种传值方式

举报
红目香薰 发表于 2022/09/29 15:38:56 2022/09/29
【摘要】 ​ ​编辑.NET MVC第三章、三种传值方式目录.NET MVC第三章、三种传值方式ViewData传递方法前台接收ViewData测试ViewBag传递方法前台接收ViewBag测试TempData·支持夸函数传递方法前台接收​编辑TempDate测试ViewDataASP.NET MVC 5源代码中ControllerBase类中ViewData属性的定义:public ViewDat...

 编辑

.NET MVC第三章、三种传值方式

目录

.NET MVC第三章、三种传值方式

ViewData

传递方法

前台接收

ViewData测试

ViewBag

传递方法

前台接收

ViewBag测试

TempData·支持夸函数

传递方法

前台接收

​编辑TempDate测试



ViewData

ASP.NET MVC 5源代码中ControllerBase类中ViewData属性的定义:

public ViewDataDictionary ViewData { get; set; }

可以看到是字典类型的,属性值object类型

public class ViewDataDictionary : IDictionary<string, object>{}

传递方法

ViewData["msg"] = "key_value的方式传值";

编辑

前台接收

@ViewData["msg"]

直接获取即可,很方便。

编辑

ViewData测试

可以看到后台传递过来的msg信息。

编辑

ViewBag

ViewBag对象是ASP.NET MVC 3提供的功能,它被声明为一个dynamic类型。

ASP.NET MVC 5源代码中声明如下:
dynamic类型的变量都会编译为object类型的变量。因此,dynamic类型只存在于编译时刻,而不存在于运行时刻。

[Dynamic] 

public dynamic ViewBag { get; }

传递方法

ViewBag.Info = "我是通过ViewBag传递的值";

编辑

前台接收

@ViewBag.Info

编辑

ViewBag测试

传递以及取值成功

编辑

TempData·支持夸函数

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

ASP.NET MVC 5源代码中声明如下:

public TempDataDictionary TempData { get; set; }
TempDataDictionary类的定义如下:
public class TempDataDictionary: IDictionary<string, object>{}

注:TempData属性是将数据保存在Session中。

传递方法

TempData["cors"] = "TempData支持夸函数传参。";

为了测试夸方法,需要单独创建一个页面。 

编辑


页面位置

编辑

前台接收

@TempData["cors"]

编辑

编辑TempDate测试

编辑

可以看到传递成功。

编辑


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。