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 ...
随机推荐
- kinect学习笔记(一)—— Openni平台的搭建~、
一.简述 Openni平台是开源的平台,也就是说所有的源代码都可以查询,可以有助于我们对于整个程序框架的学习和理解,相对于微软的SDK,我更倾向于这个平台,但是由于个各种原因,现在这个 ...
- js:语言精髓笔记4----面向对象概要与运算符二义性
实例创建:obj = new contructor[(arguments)]; //如果没有参数可以忽略括号:所以注意这不是函数调用: 直接量与初始器:在之前的基本表达式中将直接量与初始器分开,这时因 ...
- 2016 Multi-University Training Contest 10
solved 7/11 2016 Multi-University Training Contest 10 题解链接 分类讨论 1001 Median(BH) 题意: 有长度为n排好序的序列,给两段子 ...
- HDU4859 海岸线(最小割)
题目大概就是说一个n*m的地图,地图上每一块是陆地或浅海域或深海域,可以填充若干个浅海域使其变为陆地,问能得到的最长的陆地海岸线是多少. 也是很有意思的一道题. 一开始想歪了,想着,不考虑海岸线重合的 ...
- win7中资源管理器不能显示图片预览的解决方法
在用xp的时候,在资源管理器里面预览图片文件是在普通不过的事情了.换到win7之后,图片文件一直不能预览,只是显示图标还挺烦的.肯定是哪里设置的不对,下午闲来无事,找到是哪里的问题了. 如果你也遇到相 ...
- CodeForces Round 197 Div2
这次出的题水爆了,借着这个机会终于把CF的号变蓝了.A. Helpful Mathstime limit per test2 secondsmemory limit per test256 megab ...
- C# 如何判断数据是否为 NaN
double a = 0 / 0d; if (double.IsNaN(a)){ //do } 在浮点数计算中, 0除以0将得到NaN ,正数除以0将得到PositiveInfinity ,负数除以0 ...
- wp7 中 HubTile控件自定义大小。
http://blog.csdn.net/matrixcl/article/details/7057291 (转) Toolkit(http://silverlight.codeplex.com/)中 ...
- Mac or Centos 下如何编译objective-C
#import <Foundation/Foundation.h> int main(int argc,const char *argv[]){ @autoreleasepool{ NSL ...
- C#并行编程--命令式数据并行(Parallel.Invoke)---与匿名函数一起理解(转载整理)
命令式数据并行 Visual C# 2010和.NETFramework4.0提供了很多令人激动的新特性,这些特性是为应对多核处理器和多处理器的复杂性设计的.然而,因为他们包括了完整的新的特性,开 ...