MVC总结--数据传递
- 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总结--数据传递的更多相关文章
- Spring MVC Json数据传递
json是一种常见的传递格式,是一种键值对应的格式.并且数据大小会比较小,方便传递.所以在开发中经常会用到json. 首先看一下json的格式: {key1:value1,key2:value2} 每 ...
- MVC中数据传递 ViewBag的使用
ViewBag MVC3中 ViewBag.ViewData和TempData的使用和差别 在MVC3開始.视图数据能够通过ViewBag属性訪问.在MVC2中则是使用ViewData.MVC3中保留 ...
- MVC 简单数据传递
Mode: namespace MVCDemo.Models { public class Data { //申明为静态 归类所有,取数据不要实例化 ; public static string st ...
- MVC 子对象数据传递
1.接受参数 public ActionResult Address(User user) { return View(); } 2. User对象类型 public class User { pub ...
- SpringMVC之数据传递一
之前的博客中也说了,mvc中数据传递是最主要的一部分,从url到Controller.从view到Controller.Controller到view以及Controller之间的数据传递.今天主要学 ...
- 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...
- Asp.Net Mvc 控制器与视图的数据传递
数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业务层获得一些数据,怎么传递到视图中,让视图显示在客户端呢?带着这些疑问,我们接着看.. 下面 ...
- Asp.net MVC中 Controller 与 View之间的数据传递
在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用 ...
- ASP.NET MVC中将数据从Controller传递到视图
ASP.NET MVC中将数据从Controller传递到视图方法 1.ViewData ViewData的类型是字典数据,key-value 如:ViewData["Data"] ...
随机推荐
- Sqli-labs less 9
Less-9 本关我们从标题就可以看到 <基于时间-单引号>,所以很明显的这关要我们利用延时注入进行,同时id参数进行的是 ' 的处理.这里我们大致的将延时注入的方法演示一次. 这里用sl ...
- 【最短路径】 常用算法图解+1376:信使(msner)六解
进入图之后,最短路径可谓就是一大重点,最短路径的求法有很多种,每种算法各有各的好处,你会几种呢?下面来逐个讲解. 1 floyed算法 1)明确思想及功效:在图中求最短路还是要分开说的,分别是单源最短 ...
- Memory Allocation with COBOL
Generally, the use of a table/array (Static Memory) is most common in COBOL modules in an applicatio ...
- 对有些反编译不成功的apk,请更新最新的apktool.jar、 dex2jar试试
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 对有些反编译不成功的apk,请更新最新的apktool.jar. dex2jar试试 a ...
- [LOJ6191][CodeM]配对游戏(概率期望DP)
n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 首先容易想到用概率算期望,p[i][j][k]表示已加入i个数,1有j个,总长为 ...
- [CODE FESTIVAL 2016]Distance Pairs
题意:有一个未知的边权为$1$的图,给定所有点到$1$的最短路$a_i$和到$2$的最短路$b_i$,问是否存在这样的图,如果存在,问图中最少有多少条边 先考虑$a_i$,有$a_1=0,a_i\ne ...
- 【构造】AtCoder Regular Contest 079 D - Decrease (Contestant ver.)
从n个t变化到n个t-1,恰好要n步,并且其中每一步的max值都>=t,所以把50个49当成最终局面,从这里开始,根据输入的K计算初始局面即可. #include<cstdio> # ...
- JS对象和数组
/* 数组和对象 [JavaScript 权威指南 第五版] */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = ...
- 大于非负整数N的第一个回文数 Symmetric Number
1.题目 如标题,求大于整数N(N>=0)的第一个回文数的字符串表示形式. 2.样例 1 --> 2 9 -->11 12345 -->12421 123456 --> ...
- mysql远程表/视图-应用
Date :20140213Auth: Jin参考http://blog.sina.com.cn/s/blog_757b0e130101erl5.htmlhttp://dev.mysql.com/do ...