MVC中页面的传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下:
一:ViewData
获取或设置一个字典,其中包含在控制器和视图之间传递的数据。使用ViewData是采用键值对的形式,对所定义的数据进行传递。在View中会自动识别到拥有唯一键值的ViewData,并将数据显示出来。
例子:
public ActionResult()
{
List<Models.BlogArticle> list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList();
//2将集合数据传给视图
// ViewBag.DataList = list;//viewBag形式
//利用viewdata形式
ViewData["DataList"] = list; return View();
}
视图中接收:
<table id="tbList">
<tr>
<th>id</th>
<th>标题</th>
<th>分类</th>
<th>状态</th>
<th>时间</th>
<th>操作</th>
</tr> <!--遍历Action方法,设置给ViewData的集合数据,生成html代码-->
@foreach (BlogArticle a in ViewData["DataList"] as List<BlogArticle>)
{
<tr>
<td>@a.AId </td>
<td>@a.ATitle </td>
<td>@a.ACate</td>
<td>@a.AStatu </td>
<td>@a.AUpdatetime </td>
<td>@a.AContent </td>
<td>
<a href="javascript:del(@a.AId)">删</a>
<a href="/home/modify/@a.AId">改</a>
</td>
</tr> }
</table>
二:ViewBag
获取视图包,允许自定义属性进行赋值,属于动态类型(dynamic),以ViewBag.属性=属性值得方式进行传值,其实这里跟ViewData的使用原理类似
public ActionResult Index()
{
ViewBag.Title="Hello!";
}
视图中接受:
<h1>ViewBag.Title</h1>
三:其他方式
还包括一些链接的方式,例如页面跳转的方式RedirectToAction,还有RenderAction等自动接收等方式。
四:View-->Controller
1.通常会选择利用ajax来通过get或者post进行提交。如果采用最原始的JS来做,就要用到之前总结的ajax经典的五步工作法了,但是通常我们采用JQuery封装好的ajax提交方式。
即$.ajax({type,url,data,success:function(){})其中最常用的就是这几个参数属性了。
2.通过Get方式+路由配置+id值进行提交数据
<td> <a href="javascript:del(@a.AId)">删</a></td>
JS:
<script type="text/javascript">
function del(id) {
if (confirm("您确定要删除吗?亲~~")) {
window.location = "/home/del/" + id;//通过get方式采用路由配置+id的形式
}
}
</script>
五、Action---------->Action
前面两种传值方式都是在view和Controller之间进行数据传递,那么如果某一个业务需要用到后台的两个Action,并且需要再这两个 Action之间进行数据传递,这时需要用到另一个概念TempData:获取要传递到视图的临时数据.使用时,需要注意TempData的生命周期,只 在第一次请求Action时临时数据存在,之后自动变为NULL,具体的使用与ViewData相同,属于键值对的数据字典类。
public ActionResult Index()
{
this.TempData["str"]="wyy";
return View();
}
public ActionResult Index2()
{
string name=this.TempData["str"];
return Content(name);
}
以上是在学习和实践MVC过程中经常用到的页面传值的几种方式,大的方向看来从C向V数据传递以ViewData为基础,扩展到ViewBag,更加方便快速了。从V到C传递,则归于ajax中的get和post的提交了。
MVC中页面的传值方式总结的更多相关文章
- 【微信小程序】mpvue中页面之间传值(全网唯一真正可行的方法,中指推了一下隐形眼镜)
摘要: mpvue中页面之间传值(注意:是页面之间,不是组件之间) 场景:A页面跳转B页面,在B页面选择商品,将商品名带回A页面并显示 使用api: getCurrentPages step1: A页 ...
- MVC中页面传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...
- MVC中控制器向视图传值的四种方式
MVC中的控制器向视图传值有四种方式分别是 1 ViewDate 2.ViewBag 3.TempDate 4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...
- ASP.NET MVC Controller向View传值方式总结
Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...
- 页面之间传值方式的总结,五种方式,通知,block,代理,单例,NSUERDEFALUT,
首先代码拿上 1:单例 2:通知 3:代理 4:block方法 5:NSUSERDEFAULT(沙盒文件) 先是单例类: .h文件 @interface DataSource : NSObject @ ...
- asp.net页面间传值方式
使用asp.net开发项目,必然会在页面间进行传值,本文介绍几种常见的页面传值方式,仅作笔记,以便后续查找使用. 前提:新建两个页面:ValuePage.aspx,ObtainValue.aspx,本 ...
- iOS学习——页面的传值方式
一.简述 在iOS开发过程中,页面跳转时在页面之间进行数据传递是很常见的事情,我们称这个过程为页面传值.页面跳转过程中,从主页面跳转到子页面的数据传递称之为正向传值:反之,从子页面返回主页面时的数据传 ...
- Asp.net页面间传值方式汇总
七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...
- ASP.NET Core MVC 中设置全局异常处理方式
在asp.net core mvc中,如果有未处理的异常发生后,会返回http500错误,对于最终用户来说,显然不是特别友好.那如何对于这些未处理的异常显示统一的错误提示页面呢? 在asp.net c ...
随机推荐
- SqlServer中的临时表
一.什么是临时表 临时表属于会话级的,会话结束的时候,临时表被释放,其创建.使用.删除都和普通表一样,临时表空间一般利用虚拟内存,不必进行磁盘I/O,因此效率较高..临时表有两种:普通临时表 (#Tb ...
- linux系统中查看己设置iptables规则
1.iptables -L 查看filter表的iptables规则,包括所有的链.filter表包含INPUT.OUTPUT.FORWARD三个规则链. 说明:-L是--list的简写,作用是列出规 ...
- Spring Boot 启动过程及 自定义 Listener等组件
一.启动过程 二.自定义组件 package com.example.jdbc.listener; import org.springframework.context.ApplicationCont ...
- 二、ARM处理器
2.1 介绍 ARM核心的基本结构指ARM架构显示处理器中处理的数据大小.指令架构.寄存器等的结构和运行原理 ARM核心是利用ARM架构的基本原理实现的处理器核心部分. ARM的主要架构如下: ARM ...
- 【BZOJ】3282: Tree(lct)
http://www.lydsy.com/JudgeOnline/problem.php?id=3282 复习了下lct,发现两个问题.. 1:一开始我以为splay那里直接全部rot(x)就好了,然 ...
- Seafile 网络磁盘
Seafile 个人 网盘 1.安装 Seafile 1.安装依赖环境 使用 yum 安装 Python 及 MySQL: yum install python python-setuptools p ...
- spoj gss1 gss3
传送门 gss1 gss3 spoj gss系列=最大字段和套餐 gss1就是gss3的无单点修改版 有区间查询和单点修改,考虑用线段树维护 我们要维护区间权值和\(s\),区间最大前缀和\(xl\) ...
- magelinux(0111)
Web Service 应用层:http, https 实现某类具体应用: 传输层协议:TCP, UDP, SCTP IANA: 0-1023:众所周知,永久地分配给固定的应用使用,特权端口: 102 ...
- mysql gtid 第一篇
GTID1 简介 就是全局事务ID(global transaction identifier )2 构成 uuid+transaction_id 3 格式 7a07cd08-ac1b-11 ...
- Database学习 - mysql 数据库 表操作
mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...