• 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. oracle 查看16进制

    DUMP function is useful for this purpose. SQL> select dump(C1) from test; DUMP(C1)--------------- ...

  2. Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black

    Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black 使用SSH通过USB和因特网连接Beaglebone Black SSH是Secure Shell ...

  3. JZYZOJ1386 扑街 状压dp

    http://172.20.6.3/Problem_Show.asp?id=1386   有一个W行H列的街道,需要用1*2小砖铺盖,小砖之间互相不能重叠,问有多少种不同的铺法? 数组f的不往后延伸指 ...

  4. [BZOJ 1857] 传送带

    Link: BZOJ 1857 传送门 Solution: 首先中间的两个拐点$C,D$肯定都在传送带$A,B$上 接下来感性发现固定点A/C,另一个点C/D时间随位置的变化为单峰函数 这样就是三分套 ...

  5. HDU 6039 Gear Up(线段树+并查集)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6039 [题目大意] 给出一些齿轮,有些齿轮是边相连,也就是拥有相同的线速度, 有的齿轮是轴相连,也 ...

  6. [NOIp2016提高组]愤怒的小鸟

    题目大意: 平面直角坐标系的第一象限有n(n<=18)个点,你可以每次给出一个形如y=ax^2+bx的函数把经过这条函数的点消掉,问消掉所有的点至少要多少函数? 思路: 枚举每两个点对,可以唯一 ...

  7. NOIP模拟·20141105题解

    [A.韩信点兵] 结论题+模板题,用到了中国剩余定理,维基百科上讲的就比较详细,这里就不再赘述了…… 对于这题,我们先利用中国剩余定理($x \equiv \sum{(a_i m_i (m_i^{-1 ...

  8. #iOS问题记录# UIWebView滑动到底部

    最近看Tmall的iOS APP,在Tmall的商品简介页面,当拖动到最底部时,会提示继续向上拖动,“查看图文详情”: 觉得这个设计挺好的.闲来无事,自己UIWebView模仿一下,问题是检查UIWe ...

  9. linux shell实现随机数多种方法(date,random,uuid)

    参考: http://www.cnblogs.com/chengmo/archive/2010/10/23/1858879.html $ cat /proc/sys/kernel/random/uui ...

  10. Linux命令-挂载命令:mount

    设置虚拟机放入光盘,并且选中“已连接” mkdir /mnt/cdrom 设置光盘目录 ll /dev/cdrom 查看cdrom的软连接长格式信息 mount -t iso9660 /dev/sr0 ...