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 ...
随机推荐
- VS制作软件安装项目,版本控制和软件升级
具体如何利用VS制作安装项目,请到我的CSDN地址下载超详细的文档(该文档来自网络) http://download.csdn.net/detail/u012373717/8723335 我要说的是版 ...
- jpg图片转eps 用于LaTeX
好用的网上在线转,使用的sam2p 可以方便地将jpg或jpeg转为eps,pdf http://www.tlhiv.org/rast2vec/ windows下.jpg转.eps for latex ...
- documnent.getElementbyId(‘myId’)和$(‘#myId’)哪种更高效?
第一种更高效,直接调用javascript引擎.
- input:focus
input:focus,select:focus,textarea:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2p ...
- HDU 1561 (树形DP+背包)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1561 题目大意:从树根开始取点.最多取m个点,问最大价值. 解题思路: cost=1的树形背包. 有 ...
- html5 filereader读取流注意事项
对于截取读入的文件,一定要new FileReader,不可写全局调用同一个reader. 错误代码!!!function readAsBinaryString(file,callback){ rea ...
- BZOJ3238: [Ahoi2013]差异 (后缀自动机)
Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ...
- Google Code Jam 2010 Round 1A Problem A. Rotate
https://code.google.com/codejam/contest/544101/dashboard#s=p0 Problem In the exciting game of Jo ...
- 【C语言】05-printf和scanf函数
一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据 1.用法 1> pr ...
- linux系统
● ubuntu提示"sudo: unable to resolve host volcano: No such file or directory" 修改/etc/hosts,在 ...