2个页面分别为Father.cshtml、Child.cshtml

   2个控制器分别为FatherController.cs、ChildController.cs

   1个js,为Father.js

一、FatherController传值给Father.cshtml:

  1.ViewBag 和 ViewData

    传递:   ViewBag.param1 = "hello";    // ViewData["param1"] = "hello";

    接收:  @ViewBag.param1   //@ViewData["param1"] = "hello"

    ViewBag 不再是字典的键值对结构,而是 dynamic 类型,它会在程序运行的时候动态解析。

    ViewBag和ViewData互通,仅针对当前Action中有效,生命周期和View相同。

    ViewBag可以直接被foreach,ViewData不行。

  2.TempData

    传递:   TempData["param1"]="hello";

    接收:   @TempData["param1]

    TempData至多只能经过一次Controller,并且每个元素至多只能被访问一次,之后就会被删除。

         本质是存在Session中。

         一般用于缓存或者抛出错误提示。

  3.Model

    传递: Person entity = new Person()  //事先定义好Person类

       {

        Name="jerry",Age=18;

       }

       return View(entity);  //如果返回视图名字就 return View("Index",entity);

    接收:  @Model.Name   @Model.Age

  

二、Father.cshtml传值给FatherController:

  1.利用参数

    传递: <form name="form1" method="post" action="/Money/Father">  //method='get'/'post' 都行

          <input type="text" name="name" />
          <input type="tel" name="tel" />
          <input type="submit" />
             </form>

    接收: public ActionResult Father(string name,string tel)  //无论get还是post都行
             {
                  Response.Write("<script>alert('"+name + tel+"')</script>");
                  return View("Father");
             }

  2.利用Request

    传递: <form name="form1" method="post" action="/Money/Father">  //method='get'/'post' 对应QueryString或Form

          <input type="text" name="name" />
          <input type="tel" name="tel" />
          <input type="submit" />
             </form>

    接收: public ActionResult Father()  //get post 对应QueryString或Form
             {

           string name=Request.QueryString["name"]/Form["name"];

           string tel=Request.QueryString["tel"]/Form["tel"];
                  Response.Write("<script>alert('"+name + tel+"')</script>");
                  return View("Father");
             }

  3.设置Rounte

    首先在RouteConfig中添加:

routes.MapRoute(
name: "myRoute1", //名字任意
url: "Money/Index/{a}/{b}/{c}", //对指定的页面规定三个参数abc
defaults: new { controller = "Money", action = "Index",a = UrlParameter.Optional, b = UrlParameter.Optional, c = UrlParameter.Optional } //设置默认值
);

    传递:   让当前url变成 xxx/Money/Index/1/2/3 即可  //其中xxx代表协议、域名、端口号

    接收:   public ActionResult Father(string a,string b,string c)  //这样定义好就可以直接使用了,值得注意的是这里参数名必须和routes中设置的参数名相同
             {

          Response.Write("<script>alert('"+ a + b + c +"')</script>");

          return View("Father");

       }

三、Father.cshtml传值给ChildController:

  同二,只是把路径改成ChildController。

四、Father.js传值给FatherController:

  1、通过get

  2、通过post

  3、隐藏域

五、FatherController传值给Father.js:

  1、Response.Write("<script type='text/javascript'>var name=" + Name + ";</script>");

  2、隐藏域

论MVC中的传值的更多相关文章

  1. MVC中页面传值方式总结

    MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...

  2. ASP.NET MVC教程四:ASP.NET MVC中页面传值的几种方式

    准备 在Models文件夹里面新添加Student实体类,用来模拟从Controller向View传递数据,Student类定义如下: using System; using System.Colle ...

  3. MVC中Action之间传值

    一  MVCAction之间的传值 之前一直觉得关于MVC里面的传值,只能从<视图—>Action>,和<Actoin->视图>但是今天在项目里面需要实现将几个视图 ...

  4. MVC中视图View向控制器传值的方法

    MVC中视图View向控制器传值的方法步骤如下: 1.index页面: 页面中只需要一个触发事件的按钮

  5. MVC中页面的传值方式总结

    MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一:ViewData 获取或设置一个字典,其中包含在控制器和视图之间传递的数据.使用ViewD ...

  6. MVC中控制器向视图传值的四种方式

    MVC中的控制器向视图传值有四种方式分别是 1 ViewDate  2.ViewBag   3.TempDate  4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...

  7. ASP.NET MVC中controller和view相互传值的方式

    ASP.NET MVC中Controller向view传值的方式: ViewBag.ViewData.TempData 单个值的传递 Json 匿名类型 ExpandoObject Cookie Vi ...

  8. MVC中从Controller像View层传值

    MVC中的Controller不能直接的訪问View层中的控件,那么是怎样的将Controller中值传到View中,经常使用的有4种 ViewData: 是获取或设置视图的字典对象,它里面存放的是键 ...

  9. ASP.NET MVC中的两个Action之间值的传递--TempData

    一. ASP.NET MVC中的TempData 在ASP.NET MVC框架的ControllerBase中存在一个叫做TempData的Property,它的类型为TempDataDictiona ...

随机推荐

  1. debian 安装jdk

    JDK下载http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6- ...

  2. 多态原理探究-从C++编译器角度理解多态的实现原理

    理论知识: 当类中声明虚函数时,编译器会在类中生成一个虚函数表. 虚函数表是一个存储类成员函数指针的数据结构. 虚函数表是由编译器自动生成与维护的. virtual成员函数会被编译器放入虚函数表中. ...

  3. Spark-SQL连接MySql关系型数据库

    本文主要分析Spark SQL官方文档中有关于JDBC To Other Databases部分,以MySQL数据库为例,结合数据读写操作的实例代码进行详细的分析.本文中的代码需要使用到Mysql J ...

  4. 主线程中也不绝对安全的 UI 操作

    从最初开始学习 iOS 的时候,我们就被告知 UI 操作一定要放在主线程进行.这是因为 UIKit 的方法不是线程安全的,保证线程安全需要极大的开销.那么问题来了,在主线程中进行 UI 操作一定是安全 ...

  5. 如何让你的web具备权限认证

    大多数Web系统都有权限需求,前面已经了解了它的整个认证过程的原理,这节将讲述如何在Tomcat中配置web资源的权限.先以Tomcat默认的认证模式Basic和默认的域UserDatabaseRea ...

  6. JSP编译成Servlet(三)JSP编译后的Servlet

    JSP编译后的Servlet类会是怎样的呢?他们之间有着什么样的映射关系?在探讨JSP与Servlet之间的关系时先看一个简单的HelloWorld.jsp编译成HelloWorld.java后会是什 ...

  7. thinkpad x260在ubuntu 14.04lts wifi驱动安装 ( ubuntu iwlwifi驱动 都可行 )

    实验室要新购笔记本x260,用于ROS调试,装上ubuntu-ros后,发现wifi不支持. 查阅大量资料,如下: http://www.ubuntu.com/certification/hardwa ...

  8. 9.6、Libgdx之罗盘

    (官网:www.libgdx.cn) 有些Android和iOS设备可能需要检测使用罗盘检测方向. 注意:罗盘当前在iOS设备中不可用,RoboVM暂不支持. 查询当前罗盘当前是否可用: boolea ...

  9. 单向循环链表C语言实现

    我们都知道,单向链表最后指向为NULL,也就是为空,那单向循环链表就是不指向为NULL了,指向头节点,所以下面这个程序运行结果就是,你将会看到遍历链表的时候就是一个死循环,因为它不指向为NULL,也是 ...

  10. 【cocos 2d-x】VS2012+win7+cocos2d-x3.0beta2开发环境配置

    本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder  微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...