MVC 控制器之间传值学习——session
刚接触MVC不久,写的一些代码自己都不忍心看下去。路漫漫其修远兮,宝宝还需努力!之前只用过Session做登录时用户信息的储存,今天对集合类数据做了小小的尝试:利用session在控制器之间传值,以减少代重复率。
1.将数据储存到Session中(不受类型限制);
2.从session中读取数据(注意转换为正确的的数据类型);
3.随你怎么操作。
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc; namespace TempDataStudy.Controllers
{
//定义一个实体类
public class Stu
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
List<Stu> Student = new List<Stu>
{
new Stu{Id=,Name="张思宁",Age=},
new Stu{Id=,Name="习1近平",Age=},
new Stu{Id=,Name="江1泽民",Age=}
};
ViewBag.Student = Student;//向视图传值
Session.Remove("Stu");//移除Session["Stu"]
Session["Stu"] = Student;//向控制器About传值
return View();
}
public ActionResult About(int id)
{
var Student = Session["Stu"] as List<Stu>;//获取存储在Session中的值
ViewBag.StuInfo = Student.Where(p => p.Id == id).FirstOrDefault();
return View();
}
}
}
@{
ViewBag.Title = "Home Page";
}
<table class="table table-hover">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>操作</th>
</tr>
</thead>
<tbody>
@foreach (var item in ViewBag.Student)
{
<tr>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@Html.ActionLink("详情", "About",new { id = item.Id })</td>
</tr>
}
</tbody>
</table>
@{
ViewBag.Title = "About";
var t = ViewBag.StuInfo;
}
序号:@t.Id
姓名:@t.Name
年龄:@t.Age
运行结果:
MVC 控制器之间传值学习——session的更多相关文章
- iOS开发控制器之间传值的几种小方法
在IOS开发中或面试中,经常会遇到,两个或者多个控制器之间传值的问题 ,总结的集中方法仅供参考! 问题 :将B控制器中的textField 输入内容,传到A控制器中的label上显示出来,如何传值? ...
- MVC匿名类传值学习
刚接触MVC+EF框架不久,但一直很困惑的就是控制器能否及如何向视图传递匿名类数据.宝宝表示很讨厌去新建实体类啦,查询稍有不同就去建一个实体类不是很麻烦吗,故趁阳光正好,周末睡到自然醒后起来尝试了之前 ...
- java mvc控制器基本传值方式
控制器----- @RequestMapping(value = "MatchDetail", method = RequestMethod.GET) public ModelAn ...
- iOS:使用block进行类与类,控制器与控制器之间的传值
介绍:在iOS中类与类,控制器与控制器之间传值的方式有多种,分别是:单例传值.代理传值.通知传值.block传值或者一些偏好设置也可以用来传值.... 每一种传值方式都有各自的优点和缺点,针对不同情况 ...
- Asp.Net Core MVC控制器和视图之间传值
一.Core MVC中控制器和视图之间传值方式和Asp.Net中非常类似 1.弱类型数据:ViewData,ViewBag 2.强类型数据:@model 二.代码 实例 1.ViewData pub ...
- 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- MVC中控制器向视图传值的四种方式
MVC中的控制器向视图传值有四种方式分别是 1 ViewDate 2.ViewBag 3.TempDate 4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...
- MVC中Action之间传值
一 MVCAction之间的传值 之前一直觉得关于MVC里面的传值,只能从<视图—>Action>,和<Actoin->视图>但是今天在项目里面需要实现将几个视图 ...
- MVC控制器向View视图传值的三种方法
首先创建一个MVC的项目,其中需要一个控制器(TestController),三个视图(index,edit,detail) 1.项目结构如下:
随机推荐
- MVC viewbag & viewdata
弱类型:ViewData[""] 动态型:ViewBag dynamic ViewData 是字典型的(Dictionary),ViewBag 不再是字典的键值对结构,而是dyna ...
- RENOUNCEMENT
I must not think of thee;and,tired yet syrong,I shun the thought that lurks in all delight--The thou ...
- centOS7.4 thinkPHP nginx 支持pathinfo和rewrite
server { listen 80; server_name www.demo.com mayifanx.com; root /data/www/demo; index index.php inde ...
- HTML5 canvas之基础篇(一)
一.检测浏览器是否支持canvas if( !canvas || !canvas.getContext){ return; } 也可以使用modernizr.js库,Modernizr是一个易用的轻量 ...
- ng2 学习笔记(三)依赖注入与服务
前两篇文章简单介绍了ng2的一些基础用法,基本和ng1的使用风格差不多,只是写法和开发方式变化比较大. 这一篇,来总结一下ng的依赖注入与服务.官方的教程上是把他分开来讲的,个人感觉放在一起比较容易理 ...
- python之linecache使用
Python linecache模块缓存读取大文件指定行 linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去了对硬盘IO控制器的频繁操 ...
- Selenium-xapth定位
xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. 什么是xpath xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可 ...
- AFNetworking3.1 基本使用
#import "HttpsManager.h" @implementation HttpsManager #pragma mark - 创建请求者 +(AFHTTPSession ...
- linux简单介绍,helloworld,vi使用,用户管理
linux特点1.免费的.开源的2.支持多线程.多用户的3.安全性好4.对内存和文件管理优越 缺点:操作相对困难 linux最小只需要4m -> 嵌入式开发 我们使用 vm[虚拟机] 虚拟了一个 ...
- L126
Like so many things, it is not what's outside, but what is inside that counts. 许多事物都是如此,外表看起來虽不起眼,但是 ...