MVC向页面传值

MVC向页面传值

  • 从控制器Controller开始向访问的页面cshtml传值:
    在控制器的方法里定义值,
    在该方法对应的视图板块取值

定义值的方法:

  • ViewData,通过键值对的形式传值,赋值可以是任何类型;
    通过键进行取值,取出的值往往需要做强制转换,取出来默认类型都是Object
    向单个界面传值
ViewData["age"]=18;
ViewData["name"]="Vincy";
List<string> list = new List<string>() { "Monolithic", "Power", "Sysytem" };
ViewData["list"]=list;//把集合作为数据本身交给ViewData
  • ViewBag, 为ViewBag定义一个名称,通过这个名称取值,一般取出的值不需要强制转换
    取出的值类型默认是dynamic,活动类型,类似var
    向单个界面传值
 ViewBag.name = "vincy";
 ViewBag.age = 18;
 ViewBag.list = list;
  • TempData,也使用键值对的方式传值,用键取值;
    向单个界面,也可以跨页传值;注意,TempData被取出过,就会被释放掉
TempData["newname"] = "跨页传值";

取值:

@{ 
    string name = ViewData["name"].ToString();
    int age = Convert.ToInt32(ViewData["age"]);
    List<string> list1 = ViewData["list"] as List<string>;

    string name2 = ViewBag.name;
    int age2 = ViewBag.age;
    List<string> list2 = ViewBag.list;


}

<h1>viewdata的name取值为:@name</h1>
<h1>viewdata的age取值为:@age</h1>
<h1>viewdata的list取值为:@list1[1]</h1>

<h2>viewbag的name取值为:@name2</h2>
<h2>viewbag的age取值为:@age2</h2>
<h2>viewbag的list取值为:@list2[1]</h2>

效果:
在这里插入图片描述
Tempdata向单个页面传值:

@{
 string data = TempData["newname"].ToString();
}
<h3>tempdata的值为 @data</h3>
<a href="Second">跳转</a>//并设定跳转

效果:
在这里插入图片描述
Tempdata跨页传值:
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值