Asp.Net MVC Control向View传值
1、通过View(Parameter)参数传值
Control:
namespace MyMVCDemo.Controllers
{
public class PersonController : Controller
{
//
// GET: /Person/
public ActionResult Index()
{
Person whiteperson = new Person();
whiteperson.Id = 1;
whiteperson.Name = "James";
whiteperson.Age = 28; return View(whiteperson);
} }
}
View
@model MyMVCDemo.Models.Person //强类型视图
@using MyMVCDemo.Models//引用实体类命名空间
@{var person = ViewData.Model;} <br />
<p>@person.Id</p>
<p>@person.Name</p>
2、通过动态对象ViewBag.key传值,ViewBag 是动态类型(dynamic),在程序运行时动态解析
Control
namespace MyMVCDemo.Controllers
{
public class PersonController : Controller
{
//
// GET: /Person/
public ActionResult Index()
{
Person whiteperson = new Person();
whiteperson.Id = 1;
whiteperson.Name = "James";
whiteperson.Age = 28; ViewBag.person = whiteperson; return View();
} }
}
View
@using MyMVCDemo.Models
@{var person = ViewBag.person;} <br />
<p>@person.Id</p>
<p>@person.Name</p>
3、通过ViewData传值,是一个字典型,数据是Object类型,使用时要进行强制类型转换
Control
namespace MyMVCDemo.Controllers
{
public class PersonController : Controller
{
//
// GET: /Person/
public ActionResult Index()
{
Person whiteperson = new Person();
whiteperson.Id = 1;
whiteperson.Name = "James";
whiteperson.Age = 28; ViewData["person"] = whiteperson; return View();
} }
}
View
@using MyMVCDemo.Models
@{var person =(Person)ViewData["person"]
;} <br /> <p>@person.Id</p> <p>@person.Name</p>
4、通过TempData传值
Control
namespace MyMVCDemo.Controllers
{
public class PersonController : Controller
{
//
// GET: /Person/
public ActionResult Index()
{
Person whiteperson = new Person();
whiteperson.Id = 1;
whiteperson.Name = "James";
whiteperson.Age = 28; TempData["id"] = whiteperson.Id;
TempData["name"] = whiteperson.Name;
TempData["age"] = whiteperson.Age; return View();
} }
}
View
<label>@TempData["id"]</label>
<label>@TempData["name"]</label>
<label>@TempData["age"]</label>
5、总结
ViewData是字典类型的,数据是Object类型的,因此使用时要进行强制类型转换;ViewBag是dynamic类型,在程序运行时动态解析;ViewData和ViewBag的生命周期与View相同,并且只对当期View有效;而TempData可以在不同的View中进行传值,是用session机制处理的,但是TempData里面的数据在访问了一次后会被清除。
Control
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MyMVCDemo.Models; namespace MyMVCDemo.Controllers
{
public class PersonController : Controller
{
//
// GET: /Person/
public ActionResult Index()
{
Person whiteperson = new Person();
whiteperson.Id = 1;
whiteperson.Name = "James";
whiteperson.Age = 28;
//ViewData向视图传递数据
ViewData["id"] = whiteperson.Id;
ViewData["name"] = whiteperson.Name;
ViewData["age"] = whiteperson.Age;
ViewData["person"] = whiteperson;
//ViewBag向视图传递数据
ViewBag.id = whiteperson.Id;
ViewBag.name = whiteperson.Name;
ViewBag.age = whiteperson.Age;
ViewBag.person = whiteperson;
//TempData向视图传递数据
TempData["id"] = whiteperson.Id;
TempData["name"] = whiteperson.Name;
TempData["age"] = whiteperson.Age;
TempData["temp"] = "TempData";
ViewBag.temp = "ViewBagData";
ViewData["temp"] = "ViewData";
//return View(whiteperson);
return View(whiteperson);
} public ActionResult About()
{
return View();
}
}
}
About视图里面调用:
@{
ViewBag.Title = "About";
} <h2>About</h2>
<div>@TempData["temp"]</div>
<div>@ViewData["temp"]</div>
<div>@ViewBag.temp</div>
刷新About页面,则TempData["temp"]数据删除
Asp.Net MVC Control向View传值的更多相关文章
- ASP.NET MVC Controller向View传值方式总结
Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...
- ASP.NET MVC Controller向View传值的几种方式
上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如 ...
- ASP.NET MVC 控制器向View传值的三种方法
转自:http://www.cnblogs.com/shinima/p/3940452.html 1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResu ...
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的界面呈现工作是由浏览器完成的,Web应用的原理是通过Http协议从服务器上获取到 ...
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 ASP.NET没有魔法——ASP.NET MVC界面美化及使用Bundle完成静态资源管理
ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的 ...
- MVC:Control与View传值
MVC页面传值的方式主要有三种: 第一种: 采用ViewData.采用键值对的方式,ViewData存储的是一个object类型,传到view层需要强类型转换:使用起来类似于字典集合模式: ViewD ...
- MVC Controller向View传值(ViewData与ViewBag)
近期在开发项目中,使用的是ASP.NET MVC因为之前并没有接触,对于它的传值方式有些陌生,在这里进行初步总结积累学习. 一:使用 ViewData使用: public ActionResult I ...
- MVC1:.Net MVC Cotroller向View传值
下面介绍 ASP .Net MVC中 Cotroller 向 View 传值 的4中方式: ViewBag,ViewData,TempData,Model. (注:参数可根据需要为复杂类型,只需在应用 ...
- Asp.Net MVC<八>:View的呈现
ActionResult 原则上任何类型的响应都可以利用当前的HttpResponse来完成.但是MVC中我们一般将针对请求的响应实现在一个ActionResult对象中. public abstra ...
随机推荐
- lr_save_var字符串截取总结
函数作用: 将一个变化长度的字符串保存到parameter中. 用法实例: 此处讲解函数: Action() { web_save_timestamp_param("tStamp&q ...
- Linux常用命令_(磁盘管理)
磁盘信息:df.du df命令–功能:检查文件系统的磁盘空间占用情况–语法:df [选项]–选项:-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统.-k 以 ...
- python 类访问控制
访问限制 我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办? Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问.看例子: ...
- http://blog.csdn.net/shangboerds/article/details/44175667
http://blog.csdn.net/shangboerds/article/details/44175667
- DP ZOJ 3872 Beauty of Array
题目传送门 /* DP:dp 表示当前输入的x前的包含x的子序列的和, 求和方法是找到之前出现x的位置(a[x])的区间内的子序列: sum 表示当前输入x前的所有和: a[x] 表示id: 详细解释 ...
- 使用WebRequest 检测 手机号归属地。 C#通用 使用json 和可设定超时的WebClient
首先建立jsonObject,当然你也可以使用xml解析,目前介绍一下我使用的方法. /******************************************************** ...
- 【BZOJ】2946: [Poi2000]公共串
http://www.lydsy.com/JudgeOnline/problem.php?id=2946 题意:给n个串,求最大公共子串.(1<=n<=5,每个串长度<=2000) ...
- 【BZOJ】1041: [HAOI2008]圆上的整点(几何)
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1041 所谓的神题,我不会,直接题解..看了半天看懂题解了.详见hzwer博客 这题呢,我只能 ...
- 【BZOJ】1202: [HNOI2005]狡猾的商人(并查集+前缀和)
http://www.lydsy.com/JudgeOnline/problem.php?id=1202 用并查集+前缀和. 前缀和从后向前维护和,并查集从前往后合并 对于询问l, r 如果l-1和r ...
- c#中的partial关键字(转)
c#中的partial关键字 Partial: 这是C#2.0的新特性 Partial关键字起到把一个class分段组合作用,能用于多个接口或一个继承 代码片断: namespace Com ...