• View—>Controller

1.传统方式,Get方式提交。在Controller中获得client请求:

string Name = Request["name"];

string Id=Request .QueryString ["id"];

2.超链接方式

在超链接中传參,改进了原来的<a></a>

<%:Html .ActionLink ("链接","Index","Home",new{id="1",name="Jim"}) %>

上面的new{}。就是在传递一个參数集合,以这样的方式传过来的參数Controller怎样接收呢?

假如是链接到Index页面。那么在Controller中的Index方法的參数中。这样写。这里的參数名称一定要和上述的參数名称一致。

public ActionResult Index(int
id,string name)

{

return View();

}

也能够通过实体来获得

public ActionResult Index(UserInfo user)

{

return View();

}

仅仅是。实体中的属性也必须相应着:

public class UserInfo

{

public string id { get; set; }

public string
name { get; set; }

}

3.Post:获得client提交的数据:Request.Form

4.在client建立表单。在Controller中获得表单集合FormCollection

public ActionResult Index(FormCollection form1)

  • Controller—>View

1.传统方式,直接输出:

Response.Write(form1.Count );

return Content("ok");

  • Controller<—>View

1.通过ViewData

ViewData是字典容器。它是key/Value键值集合

在Controller中:

ViewData["key"]

在View中:

<%=ViewData["key"]%>

<%:ViewData["key"]%>

或者让某个控件显示ViewData中的数据

<%=Html .TextBox ("txtName") %>

仅仅要key值同样,Controller和View中的ViewData中的数据就能够互相传递。

2.强类型页面,设置视图模型

弱类型页面传递的数据,没有限制,而强类型页面规定了该页面传递的数据类型--指定的某个模型(Model),能够使传递的数据准确,安全。为了让它们之间数据传递通畅无阻。须要我们在Controller中设定ViewData.Model类型。

在页面上我们也要设定:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcDemo1.Models.TDepartment>" %>

然后在页面中就能够获得模型中详细字段。<%: Html.DisplayNameFor(model => model.txtName) %>

这里"model"就是一个变量名。能够随意命名。由于在整个页面已经规定了类型了,所以也能够写成。

<%: Html.DisplayNameFor(m => m.txtName) %>

  • 总结

MVC中的数据传递看起来方便,安全,当然也有非常多约束。如一些參数名称的相应,除了以上方式,还有ViewBag等传递数据的方式,须要我们在实际应用中来比較它们各自的优劣。

MVC总结--数据传递的更多相关文章

  1. Spring MVC Json数据传递

    json是一种常见的传递格式,是一种键值对应的格式.并且数据大小会比较小,方便传递.所以在开发中经常会用到json. 首先看一下json的格式: {key1:value1,key2:value2} 每 ...

  2. MVC中数据传递 ViewBag的使用

    ViewBag MVC3中 ViewBag.ViewData和TempData的使用和差别 在MVC3開始.视图数据能够通过ViewBag属性訪问.在MVC2中则是使用ViewData.MVC3中保留 ...

  3. MVC 简单数据传递

    Mode: namespace MVCDemo.Models { public class Data { //申明为静态 归类所有,取数据不要实例化 ; public static string st ...

  4. MVC 子对象数据传递

    1.接受参数 public ActionResult Address(User user) { return View(); } 2. User对象类型 public class User { pub ...

  5. SpringMVC之数据传递一

    之前的博客中也说了,mvc中数据传递是最主要的一部分,从url到Controller.从view到Controller.Controller到view以及Controller之间的数据传递.今天主要学 ...

  6. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...

  7. Asp.Net Mvc 控制器与视图的数据传递

    数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业务层获得一些数据,怎么传递到视图中,让视图显示在客户端呢?带着这些疑问,我们接着看..        下面 ...

  8. Asp.net MVC中 Controller 与 View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用 ...

  9. ASP.NET MVC中将数据从Controller传递到视图

    ASP.NET MVC中将数据从Controller传递到视图方法 1.ViewData ViewData的类型是字典数据,key-value 如:ViewData["Data"] ...

随机推荐

  1. 【字符串哈希】【哈希表】Aizu - 1370 - Hidden Anagrams

    给你两个4k长度的串,问你最长公共子串.两个子串相同被定义为所有字母的出现次数分别相同即可. 就枚举第一个串的所有子串,将字母出现的次数看作一个大数,进行哈希(双关键字),塞到哈希表里面.然后枚举第二 ...

  2. Erlang学习记录(二)——基本数据类型

    Erlang可以说和我以前接触过的语言都大不相同,这个从它的类型定义就可以看出来...反正学起来觉得既不熟悉,也不亲切,我估计在用Erlang写应用的时候,整个编程思路都要变一下了.不过存在即是合理的 ...

  3. codevs 1962 马棚问题--序列型DP

    1962 马棚问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 每天,小明和他的马外出,然后他们一边跑一边玩耍.当他们结束 ...

  4. linux 配置信息

    # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostn ...

  5. MYSQL复习笔记13-触发器trigger

    Date: 20140305Auth: Jin 一.概念1.基本概念触发器是一个被指定关联到一个表的数据对象,触发器是不需要调用的,当对一个表的特别事件出现时,它就被激活.触发器的代码也是由SQL语句 ...

  6. Jquery JS 正确的比较两个数字大小的方法

    if(2 > 10){ alert("不正确!");} 此比较不会是想要的结果:它相当于2 >1,把10的第一位取出来比较. 解决方 法:  if(eval(2) &g ...

  7. 使用Apache POI导出Excel小结--导出XLS格式文档

    使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...

  8. Java笔记19:Java匿名内部类

    匿名内部类也就是没有名字的内部类.正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写.但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 例1:不使用匿名内部类来实现抽象方 ...

  9. Linux环境Nginx安装与调试以及PHP安装

    linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5.28 1.编译安装Nginx 官网:http://wiki.nginx.org/Instal ...

  10. Hadoop 伪分布式上安装 HBase

    hbase下载:点此链接  (P.S.下载带bin的) 下载文件放入虚拟机文件夹,打开,放在自己指定的文件夹 -src.tar.gz -C /home/software/ 修改环境配置 gedit / ...