关于MVC页面之间的传值,有多种方式,下面,我们就Html.RenderAction 方式 和 Html.RenderPartial 方式 来给大家分享一下有什么不同。

一、Html.RenderAction 方式页面之间传递参数的方式:

Html.RenderAction 方式 是访问的另一页面的Controller,并将参数传入另一页面的Controller中相应的Action中的参数中。

例如:我有这么一个Controller和Action(是一个部分视图的)

1     public class TopController : Controller
2 {
3 // GET: Top
4 public ActionResult Index(string content)
5 {
6 ViewBag.content = content;
7 return PartialView();
8 }
9 }

这个Index中,将接到的参数写到ViewBag.content中,一面前端View界面中取到。如下:

那么我们如何利用Html.RenderAction方式,将参数传入到这个页面然后展示出来呢?

这就是利用Html.RenderAction方式,传递参数给Top 中的 Index 页的。

大家学会了嘛?

二、Html.RenderPartial 方式

Html.RenderPartial 方式 与 Html.RenderAction 不同,他没有将参数传递到另一页面的Controller对应的Action,而是直接传递到另一界面的Model中。

所以,Html.RenderPartial传值不会经过Controller直接进入Model。

下面我们来看一下具体的操作。

1、首先我们简历一个简单的Model模型。

1     public class Person
2 {
3 public string Name { get; set; }
4 public string Sex { get; set; }
5
6 }

2、建立界面Boot页,(Boot自己取的名字) 其 View如下:

上面代码中,我们将页面的model制定未Person类。在两个<h2>标签中根据类的属性去取相应的值。

建立完这个页面,我们就要向这个页面传值了,那么如何用 Html.RenderPartial 向其中传值呢? 如下:

上述红框中即为用 Html.RenderPartial 方式传值。

这种方式似乎还有不足的地方,是的,我们不可能每次用Html.RenderPartial方式传值的时候,都要去建立一个Model模型,这样的话几乎是场灾难。那么如何避免呢?

我们用Html.RenderPartial方式向另一界面传值的理想方式或许是这样的:

如上面红框中所示。直接用一个匿名对象将参数包进去,然后传递过去就行,但是,另一个页面是否会接受到呢?

或许,大家早已经测试过了,答案是:不可以。在Model中去Name和Sex,会报错的(相信各位园友们早已实验过了)

那么我们如何改进,能让这个页面可以接受到这种方式的参数传递呢?如下:

上述方式去取值,就会取到传递过来的匿名对象的相应属性了。是不是很high啊,以后传值就方便多了。

传递的参数的类型也可以是多种多样,例如:

我们加了一个DateTime类型的参数,那么另一界面还是一样,照接不误。

页面

好了,关于MVC页面之间参数传递,就分享到这里了。

努力,不是为了要感动谁,也不是要做给哪个人看,而是要让自己随时有能力跳出自己厌恶的圈子,并拥有选择的权利。记住,用自己喜欢的方式过一生。
原文链接:http://www.cnblogs.com/xiaomowang/p/6705541.html

MVC 页面间的传值的更多相关文章

  1. mvc页面间的传值

    本文大致讲解mvc前后端的传值方式,包括control向view.view向control.以及action向action. 回顾 我们回顾下在ASP.NET WebForms中,页面之间最常用的传值 ...

  2. Mvc action间的传值

    1, Mvc action间的传值? TempData["student"] ="123" 在<走入asp.net mvc不归路>系列文章5中,介绍 ...

  3. 使用Block来进行页面间的传值

    Block语法 定义Block //定义类型 typedef void (^ReceiveMessageBlock)(NSString *); //申明变量 ReceiveMessageBlock t ...

  4. HTML5 Web存储 页面间进行传值

    在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...

  5. B/S结构中页面间的传值

    常见的页面间的传值有session,cookie,application,server.transfer(),queryString,今天主要记录一下server.transfer()的用法. 从A页 ...

  6. JSP页面间的传值方法总结

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧.试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式.下面来一起看看详细的介绍: 1. URL 链接后追加参数 ? 1 ...

  7. 利用Swift之协议语法实现页面间的传值功能

    随着Swift 新开发语言的发布,又随着Xcode6.0.1的正式发布,利用swift编写iOS代码迫在眉睫,笔者在使用Objective-C开发近三年以来,对这种优雅的语法深感赞叹,下面我将对比式的 ...

  8. jsp页面间的传值方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  9. vue项目各页面间的传值

    githut地址:https://github.com/liguoyong/vueobj1 一.父子之间主键传值:(主要是在父主件里的子主件传递参数,然后再子主件里用props接收) 例如Father ...

随机推荐

  1. replace()函数用法

    replace()函数表示将用一个字符串替换字符串中的所出现的特定内容. 语法为:replace(字段1,字段2,字段3),意思为字段3将会替换字段1里与字段2相同的内容  列如: table1 st ...

  2. NSMutableString和NSString区别,及相互转换方法

    NSString是一个不可变的字符串对象.这不是表示这个对象声明的变量的值不可变,而是表示它初始化以后,你不能改变该变量所分配的内存中的值,但你可以重新分配该变量所处的内存空间.而NSMutableS ...

  3. 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序

    最近在准备笔试题和面试题,把学到的东西整理出来,一来是给自己留个笔记,二来是帮助大家学习. 题目: 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例:  输入:[1,2,3,5,2, ...

  4. ASP.NET 4.5 MVC 4 无法运行在Windows2008的IIS7.0上显示404的解决方案

    需要在web.config下加上这个 <system.webServer> <modules runAllManagedModulesForAllRequests="tru ...

  5. hdu1520树形dp第一题

    判断最大的欢喜值,如果上司来了,直系下属就不来 如果子节点j不来那么dp[i][1]+=dp[j][0];如果子节点j来那么dp[i][0]+=max(dp[j][0],dp[j][1]);//因为j ...

  6. Java输出double类型中的最小正数和最大正数

    这是<写给大忙人看的java核心技术>中的一道练习题. 1. 输出最大正数值 System.out.println(Double.MAX_VALUE); 直接输出包装类Double的MAX ...

  7. MongoDB 3.4 分片集群副本集 认证

    连接到router所在的MongoDB Shell  我本机端口设置在50000上 mongo --port 接下来的流程和普通数据库添加用户权限一样 db.createUser({user:&quo ...

  8. HDU 4681 STRING dp+暴力。

    题意:不说了很好懂. 这题这么水= =...当时竟然没有勇气暴力搜一下.昨天(好吧前天.)比赛的时候胃疼,看到这题想了一个办法就是对每一个出现最短的C串前后连接然后对这个串求最长公共子序列.其实优化一 ...

  9. oracle 修改字符集 修改为ZHS16GBK

    oracle数据库的字符集更改 A.oracle server 端 字符集查询 select userenv('language') from dual 其中NLS_CHARACTERSET 为ser ...

  10. 微信小程序获取当前页面的路径的方式

    使用getCurrentPages可以获取当前加载中所有的页面对象的一个数组,数组最后一个就是当前页面. var pages = getCurrentPages() //获取加载的页面 var cur ...