mvc中的几个数据传递
1、ViewData对象
ViewBagData是一种字典集合数据同时属于视图基类和控制器基类的属性。
实例:
//控制器
public class HomeController:Controller
{
public ActionResult Index()
{
ViewData["data"]="Hello asp.net";
return View();
}
}
视图:
<h1><%=ViewData["data"]%></h1>
2、动态对象ViewBag
ViewBag是dynamic类型的对象,同事属于视图基类和控制器基类的属性。用法如下:
//控制器代码
public class HomeController:Controller
{
public ActionResult Index()
{
ViewBag.data="Hello asp.net";
return View();
}
}
<!--视图-->
<h1><%=ViewBag.data%></h1>
本质上,ViewBag是对ViewData数据的包装,,也就是使用ViewData保存数据,可以使用ViewBag读取,使用ViewBag保存的数据,也可以使用ViewData读取,例如
ViewData["data"]的数据,使用ViewBag.data也可以访问。
注意:同一个项目中,一般ViewData和ViewBag只是用一种,不要代码中同同时出现ViewData和ViewBag.
3、跨请求数据传递——TempData
TempData也属于字典类型在编码上于ViewData类似,但是他是完全独立的对对象,它保存的数据域Viewdata互不干扰
用法如下:
//控制器
public class HomeController:Controller
{
public ActionResult Index()
{
TempData["data"]="Hello asp.net";
return View();
}
}
//视图
<h1><%=TempData["data"]%></h1>
在开发中TempData主要是跨请求传递数据
public class HomeController:Controller
{
public ActionResult Index()
{
TempData["data"]="来自Index()的数据";
Response.Redirect("~/Home/Detail");
return View();
}
public ActionResult Detail()
{
return View();
}
}
//Detail.aspx视图
<h1><%=TempData["data"]%></h1>
在asp.net mvc系统中,TempData的保存机制实际上是可扩展的,它默认的保存机制是session。虽然TempData的保存机制是session,对于前一次的请求使用Temp
使用的Temp保存的数据,但是如何Temp中的数据被使用过(从视图中输出)接下来的请求将获取不到数据,再一次请求中,如何TempData数据被使用过,就会被清除
如果没有被使用过,那么他保存的时间是Session的生存期。
mvc中的几个数据传递的更多相关文章
- mvc中view与controll之间传递参数时,可以使用url进行传递
mvc中view与controller之间传递参数时,可以使用url进行传递,但是在url的地址中需要加上“id=123”这样的东西才行. 具体如代码: window.location.href = ...
- MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结
一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.ge ...
- Asp.Net Mvc 控制器与视图的数据传递
数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业务层获得一些数据,怎么传递到视图中,让视图显示在客户端呢?带着这些疑问,我们接着看.. 下面 ...
- Spring MVC中Controller如何将数据返回给页面
要实现Controller返回数据给页面,Spring MVC 提供了以下几种途径: ModelAndView:将视图和数据封装成ModelAndView对象,作为方法的返回值,数据最终会存到Http ...
- APS.NET MVC + EF (04)---路由和数据传递
4.1 视图引擎 ASP.NET MVC 提供两种视图引擎:ASPX(C#)和Razor(CSHTML),推荐使用Razor. 4.1.1 Razor的语法 在Razor视图中,所有的服务器端代码都是 ...
- 【部分】Asp.Net Mvc 控制器与视图的数据传递
原文:https://www.cnblogs.com/lsgsanxiao/p/5105639.html 数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业 ...
- JAVA中使用JSON进行数据传递
最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...
- ASP.NET中实现页面间数据传递的方法
说到页面间数据传递,很多人都会想到通过像Session这样的全局变量,但是向Session中添加的东西太多会增加服务器的压力,页面间数据传递,数据的作用范围越小越好. ASP.NET页面间数据传递 ...
- 转载:JAVA中使用JSON进行数据传递
转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...
随机推荐
- selenium 学习笔记 ---新手学习记录(3) 问题总结(java)
1.验证码简单处理 /** * 验证码等待输入函数 * */ private void ZcYzm(WebDriver driver){ boolean flag=false; while(flag= ...
- js运算符(运算符的结合性)
1.javascript具有下列种类的运算符:算术运算符;逻辑运算符;比较运算符; 2.目的分类:字符串运算符;逻辑运算符;逐位运算符;赋值运算符; 3.特殊运算符:条件运算符;typeof运算符;创 ...
- Pain for friend
For a guy who has experienced his fair share of mysteries,on mystery,I still can't figure out is why ...
- 算法导论 6-2 d叉堆
问题: d叉堆性质与二叉堆相似,但其每个非叶子结点有d个孩子: 1) 如何在一个数组中表示一个d叉堆? 2) 包含n个元素的d叉堆的高度是多少? 3) 给出 EXTRACT-MAX在d叉堆的有效实现, ...
- IPhone多视图切换
处理IPhone多个view切换是我们常遇到的问题,接下来有个比较实用的方法: 而且还附有创建空项目,内存告急处理和动画效果的实现! 具体步骤: 1.创建一个空的项目,然后添加一个ViewContro ...
- Dancing Stars on Me(判断正多边形)
Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 变脸不变质的桥梁模式(Bridge Pattern)
有一哥们是搞山寨货的,什么流行就搞什么.自己有个厂子,前些时间服装挣钱,就生产衣服,如今搞手机挣钱,搞手机,这哥们非常聪明,就换了个产品,工人,厂房都不变.他是怎么做到的?用类图来模拟一下: 由类图能 ...
- C#多线程编程简述
NET将关于多线程的功能定义在System.Threading名字空间中.因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;). a.启动线程顾名思义,“启动 ...
- 2.3.9 用NPOI操作EXCEL--通过NPOI获得公式的返回值
前面我们学习了通过NPOI向Excel中设置公式,那么有些读者可能会问:“NPOI能不能获取公式的返回值呢?”,答案是可以!一.获取模板文件中公式的返回值如在D盘中有一个名为text.xls的Exce ...
- [C/C++基础]读写文件
1.打开.关闭文件: FILE* fp = fopen(string.c_str(), FLAG); string.c_str():需用C语言字符串形式: FLAG说明: r: 只读方式打开: w: ...