zoukankan      html  css  js  c++  java
  • .net MVC3 页面和 action 传值问题

    一、ViewData ViewData ViewBag 的特点和使用场景比较

    1.  TempData:类型是字典的键值对结构

    特点:值只能取一次。保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除 Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层 面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从 ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。每次请求结束后,TempData的生命周期也就结束了
    使用场景:

    (1)TempData 一般用于临时的缓存内容或抛出错误页面时传递错误信息,可以将TempData 在使用之前存储到相应的 ViewData 中以备循环使用

    (2)从一个action跳转到另一个action(可以跨controller),并且需要携带参数时使用。例如从用户分组action跳转到用户列表,传递的参数为分组ID,在用户列表页显示该分组ID的用户。

    2.ViewData:类型是字典的键值对结构

    特点:生命周期和View相同,仅对当前View有效。ViewData只会在一次HTTP请求中有效,当这次请求结束后,就会自动清空其值。

    使用场景:可以用在Action向View传递数据。但向页面传值最常用的是向View传递Model,这本身就是MVC的意义所在。

    3.ViewBag:ViewBag存放的不是键值对,而是dynamic动态类型

    特点:和ViewData生命周期相同,也是对但前View有效

    ViewBag向页面传值,可以用

    window.searchDataDate = @Html.Raw(ViewBag.date);

    接收,在任何该页面引用的js文件里都可以引用该值。

  • 相关阅读:
    并发基础(一) 线程介绍
    java基础(九) 可变参数列表介绍
    全球 43 亿 IPv4 地址已耗尽!IPv6,刻不容缓
    IPv6,无需操作就可升级?
    为什么 HTTPS 比 HTTP 安全
    从《国产凌凌漆》看到《头号玩家》,你就能全面了解5G
    再谈 APISIX 高性能实践
    API 网关的选型和持续集成
    尹吉峰:使用 OpenResty 搭建高性能 Web 应用
    鱼和熊掌可兼得?一文看懂又拍云 SCDN
  • 原文地址:https://www.cnblogs.com/bwlang/p/3303146.html
Copyright © 2011-2022 走看看