一、Control往View传递值

 1.1 ViewBag

ViewBag的后面接的是动态对象,它会在程序运行的时候动态解析。具体用法为ViewBag.Key,Key为Data在View中的唯一识别。

ViewBag其实本质就是ViewData,只是多了层Dynamic控制。他们的Key是共用的,如ViewBag.name其实和ViewData["name"]源代码是一样的,

修改了其中任何一个,两个都会被修改。ViewData和ViewBag中的值可以互相访问。

代码:

Control端:

public ActionResult Index2(){ViewBag.name = "张三";ViewData["name"] = "李四";return View();}

  

View端:

@{Layout = null;
}<!DOCTYPE html><html>
<head><meta name="viewport" content="width=device-width" /><title>Index2</title>
</head>
<body><div><span>ViewBag:   姓名:@ViewBag.name</span><span>ViewData: 姓名:@ViewData["name"]</span></div>
</body>
</html>

  结果:

ViewBag: 姓名:李四 ViewData: 姓名:李四

1.2 ViewData

         ViewData它key/Value的键值对。

Control端:

ViewData["name"] = "张三";

View端:

<span>年龄:@TempData["age"]</span>

ViewData和ViewBag的主要区别:ViewPage查询数据的时候,ViewData需要做数据类型的转换(必须显式转换),而ViewBag不需要做一些数据类型的转换(隐式转换)。

Control端:

        public ActionResult Index(){Student stu = new Student();stu.name = "张三";stu.age = 20;ViewBag.student = stu;ViewData["student"] = stu;return View();}

  

View端:

@{ViewBag.Title = "Index";
}<span>姓名:@ViewBag.student.name</span> <span>年龄:@ViewBag.student.age</span>
@{var stu = @ViewData["student"] as @MVC传值.Models.Student;
}
<span>姓名:@stu.name</span> <span>年龄:@stu.age</span>
<a href="JumpMethod" >跳转到Test1View</a>

   1.3 TempData 

TempData只保存到下一个请求中,下一个请求完了之后,TempData就会被删除了。

TempData每一项即每一个Key对应的项次只能被(View或者Controller)使用一次,就会被销毁。

Request的定义从宏观上看就是页面刷新了一次。

至于TempData的生存周期请参考:http://www.cnblogs.com/jhxk/articles/4773527.html

Control端:

       public ActionResult Index(){TempData["age"] = 20;return View();}public ActionResult JumpMethod(){//TempData["age"] = 21;return RedirectToAction("Test1");}public ActionResult Test1(){return View();}

  

View端:

1 <span>姓名: @ViewBag.name</span>&nbsp;<span>年龄:@TempData["age"]</span>

转载于:https://www.cnblogs.com/cherish836138981/articles/6586597.html

ASP.NET MVC视图和控制器之间的传值总结(一)相关推荐

  1. Salesforce视图与控制器之间的交互

    刚接触Salesforce,过程的确是比较艰难了,中文资料几乎没有,看英文资料学的效率却不高,不过看了一段时间的英文资料发现自己英语水平挺高不少啊,现在看都不用工具翻译,早知道就再次尝试报个6级,看下 ...

  2. ASP.NET MVC 视图(四)

    ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...

  3. ASP.NET MVC之从控制器传递数据到视图四种方式(一)

    前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎 ...

  4. ASP.NET MVC (一、控制器与视图)

    目录 前言: 1.MVC简介 2.项目创建:(这里使用工具为:Visual Studio 2019) 2.1.文件夹与文件夹介绍: 3.控制器 3.1.添加控制器 3.2.添加视图层 3.3.修改默认 ...

  5. [翻译]通过调用多个动作创建ASP.NET MVC视图

    在ASP.NET MVC中,创建视图最典型的方式是调用一个action方法,它使用模型准备视图数据.action方法然后调用控制器的视图方法创建视图.然而,你可能想要调用不同的动作方法创建视图的不同部 ...

  6. ASP.NET MVC系列:添加控制器

    基于MVC的应用程序包含三个部分 Models(模型):对应用程序的数据进行处理 Views(视图):动态生成HTML,显示数据 Controllers(控制器):应用程序中处理用户交互的部分,处理浏 ...

  7. ASP.NET MVC学习之控制器篇

    一.前言 许久之后终于可以继续我的ASP.NET MVC连载了,之前我们全面的讲述了路由相关的知识,下面我们将开始控制器和动作的讲解. ASP.NET MVC学习之路由篇幅(1) ASP.NET MV ...

  8. 光脚丫学ASP.NET MVC(0005):控制器概述

    光脚丫思考 QQ:524130780 邮箱:524130780@QQ.COM 博客:http://blog.csdn.net/GJYSK 视频演示:http://u.115.com/file/aqa2 ...

  9. ASP.NET MVC入门——添加控制器

    MVC 代表 模型-视图-控制器. MVC 是用于开发应用程序的一种模式,该模式设计良好.可测试且易于维护. 基于 MVC 的应用程序包含: M 模式:类,这些类表示应用程序的数据,并使用验证逻辑来强 ...

最新文章

  1. web页面实现地图展示,可缩放,标点并点击---使用高德地图
  2. [SoapUI] 在Test Step 下加Script Assertion,用 messageExchange 获取当前步骤的response content...
  3. 放学默示录Ⅰ:来!抠奖 移动游戏策划案
  4. sql exist 优化查询时间
  5. bp 神经网络 优点 不足_深度学习之BP神经网络--Stata和R同步实现(附Stata数据和代码)
  6. dos插入mysql乱码
  7. 逐月对比的交叉表处理
  8. CentOS 7.5 重置 root 密码
  9. 将.sql文件导入数据库
  10. 从零开始学JavaScript——基础篇
  11. 计算机无线键盘没反应,电脑无线键盘没反应怎么回事
  12. Vector CANoe修改Panel的名字
  13. Vista 兼容软件列表
  14. 在Delphi中打印条码的方法步骤如下
  15. iOS监控-野指针定位
  16. HOW2J j2se实战小项目-记事本项目
  17. FPGA 顶层图纸.bdf文件设计、LPM
  18. 阿里暑期实习一面总结
  19. 酷派童年童装×××间
  20. 推荐一位好友,是他让我破了戒!

热门文章

  1. CTR预估中GBDT与LR融合方案
  2. 【Uva 10934】Dropping water balloons
  3. hadoop Mapreduce组件介绍
  4. ubuntu apt-get install xxx命令,下载的路径及清除方式
  5. 2018年中国C++大会详细日程+报名
  6. [coco2d]pageView:addPage时,page无法对齐
  7. python学习笔记5—数据类型转换
  8. 《设计模式系列》---工厂方法
  9. Chrome Native Client 原理
  10. Nginx 中 last、break、permanent、redirect