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传值的更多相关文章

  1. ASP.NET MVC Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  2. ASP.NET MVC Controller向View传值的几种方式

    上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如 ...

  3. ASP.NET MVC 控制器向View传值的三种方法

    转自:http://www.cnblogs.com/shinima/p/3940452.html 1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResu ...

  4. ASP.NET没有魔法——ASP.NET MVC Razor与View渲染

    对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的界面呈现工作是由浏览器完成的,Web应用的原理是通过Http协议从服务器上获取到 ...

  5. ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 ASP.NET没有魔法——ASP.NET MVC界面美化及使用Bundle完成静态资源管理

    ASP.NET没有魔法——ASP.NET MVC Razor与View渲染   对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的 ...

  6. MVC:Control与View传值

    MVC页面传值的方式主要有三种: 第一种: 采用ViewData.采用键值对的方式,ViewData存储的是一个object类型,传到view层需要强类型转换:使用起来类似于字典集合模式: ViewD ...

  7. MVC Controller向View传值(ViewData与ViewBag)

    近期在开发项目中,使用的是ASP.NET MVC因为之前并没有接触,对于它的传值方式有些陌生,在这里进行初步总结积累学习. 一:使用 ViewData使用: public ActionResult I ...

  8. MVC1:.Net MVC Cotroller向View传值

    下面介绍 ASP .Net MVC中 Cotroller 向 View 传值 的4中方式: ViewBag,ViewData,TempData,Model. (注:参数可根据需要为复杂类型,只需在应用 ...

  9. Asp.Net MVC<八>:View的呈现

    ActionResult 原则上任何类型的响应都可以利用当前的HttpResponse来完成.但是MVC中我们一般将针对请求的响应实现在一个ActionResult对象中. public abstra ...

随机推荐

  1. MapReduce:详解Shuffle过程

    Shuffle过程,也称Copy阶段.reduce task从各个map task上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定的阀值,则写到磁盘上,否则直接放到内存中. 官方的Shuffl ...

  2. python的包和模块

    python 的包即文件夹,但是必须包含_init_.py 模块就是xx.py

  3. js:语言精髓笔记6----作用域

    js基础语法:由语句.表达式和变量构成:   语句是主要表达方式:单语句->复合语句(代码块)->程序片段(函数):js中没有单元和程序的概念: 作用域: 语法作用域与变量作用域的区别:前 ...

  4. mount part中位置的作用

    比如部件A上有个mount part,通过它与部件B装配.mount part与B是通过fixed joint 链接的,所以这个coordinate reference位置就决定了fixed join ...

  5. 洛谷 P2024 食物链 POJ 1182 Label:并查集Turbo

    题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我 ...

  6. 【BZOJ】1601: [Usaco2008 Oct]灌水(kruskal)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1601 很水的题,但是一开始我看成最短路了T_T 果断错. 我们想,要求连通,对,连通!连通的价值最小 ...

  7. COJ986 WZJ的数据结构(负十四)

    WZJ的数据结构(负十四) 难度级别:D: 运行时间限制:6000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大小 ...

  8. mysql的jdbc入门学习小结

    转自:专注JavaWeb开发 http://www.javaweb1024.com/data/MySQL/2015/04/25/618.html 一.jdbc基本概念jdbc : Java Datab ...

  9. PHP 如何读取一个1G的文件大小

    需求如下: 现有一个1G左右的日志文件,大约有500多万行, 用php返回最后几行的内容. 1. 直接采用file函数来操作 or file_get_content() 肯定报内存溢出注: 由于 fi ...

  10. jsp 将html字符串输出html标签

    第一种: <% out.println("<table><tr><td></td></tr></table>&q ...