【ASP.NET MVC】页面传值方式



页面数据传值方式

1.base.ViewBag.key
2.base.ViewData[“key”]
3.base.TempData[“key”]
4.base.HttpContext.Session[“key”]
5.object Model


1.base.ViewBag.key

  • 单个页面传值;
  • ViewBag.key属于dynamic动态类型,类似于var,取值时,会自动完成类型转换,不需要强制类型转换;
    string value = ViewBag.key;
    List<string> list = ViewBag.mylist;

2.base.ViewData[“key”]

  • 单个页面传值;
  • ViewData[“key”]传值需要强制类型转换;
    string value = ViewData["key"].ToString();
    List<string> list = ViewData["mylist"] as List<string>

3.base.TempData[“key”]

支持向单个页面传值,也支持跨页传值:
base.TempData[“key”],一旦TempData被取过值,就释放掉了;

4.base.HttpContext.Session[“key”]

5.object Model

注意:

1.ViewBag和ViewData:如果指定的key是一样的,后者会覆盖前者;
2.TempData和Session传值,跳转到其他的方法或页面后,仍然可以获取到值,由此可知,TempData其实是通过Session来实现传值的;
3.model传值不要把数据类型定义成String类型,因为有 view() 方法的重载支持,返回指定的视图类型。

代码实例:

Controller:
控制器的Index动作

Index.cshtml

Index.cshtml视图

6.跨页传值

1.控制器,要传递的值
控制器
2.控制器Action访问的第一个视图,设置跳转到第二个ToIndex视图
newIndex视图的跳转
3.ToIndex视图接收传递过来的参数
在这里插入图片描述

运行结果:

在这里插入图片描述

注意:
TempData[“key”] 传值时,一旦被取值,将会释放内存;
HttpContext.Current.Session[“key”] 传值时,可以多次取值,允许跨页面多次取值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值