论MVC中的传值
2个页面分别为Father.cshtml、Child.cshtml
2个控制器分别为FatherController.cs、ChildController.cs
1个js,为Father.js
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
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");
}
同二,只是把路径改成ChildController。
1、通过get
2、通过post
3、隐藏域
1、Response.Write("<script type='text/javascript'>var name=" + Name + ";</script>");
2、隐藏域
论MVC中的传值的更多相关文章
- MVC中页面传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...
- ASP.NET MVC教程四:ASP.NET MVC中页面传值的几种方式
准备 在Models文件夹里面新添加Student实体类,用来模拟从Controller向View传递数据,Student类定义如下: using System; using System.Colle ...
- MVC中Action之间传值
一 MVCAction之间的传值 之前一直觉得关于MVC里面的传值,只能从<视图—>Action>,和<Actoin->视图>但是今天在项目里面需要实现将几个视图 ...
- MVC中视图View向控制器传值的方法
MVC中视图View向控制器传值的方法步骤如下: 1.index页面: 页面中只需要一个触发事件的按钮
- MVC中页面的传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一:ViewData 获取或设置一个字典,其中包含在控制器和视图之间传递的数据.使用ViewD ...
- MVC中控制器向视图传值的四种方式
MVC中的控制器向视图传值有四种方式分别是 1 ViewDate 2.ViewBag 3.TempDate 4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...
- ASP.NET MVC中controller和view相互传值的方式
ASP.NET MVC中Controller向view传值的方式: ViewBag.ViewData.TempData 单个值的传递 Json 匿名类型 ExpandoObject Cookie Vi ...
- MVC中从Controller像View层传值
MVC中的Controller不能直接的訪问View层中的控件,那么是怎样的将Controller中值传到View中,经常使用的有4种 ViewData: 是获取或设置视图的字典对象,它里面存放的是键 ...
- ASP.NET MVC中的两个Action之间值的传递--TempData
一. ASP.NET MVC中的TempData 在ASP.NET MVC框架的ControllerBase中存在一个叫做TempData的Property,它的类型为TempDataDictiona ...
随机推荐
- Android开发学习之路--Camera之初体验
顾名思义Camera就是拍照和录像的功能,像微信里面,我们想拍照传一下照片,就可以通过camera来拍照,然后存储照片,发送给好友.那么微信的app里面是不会直接通过camera api来实现的,因为 ...
- 定义范围中的备选方案生成、横向思维、创建WBS、工作包定义、WBS、确认范围过程和实施质量过程的关系、联合应用设计和质量功能展开QFD
- UNIX网络编程——TCP输出,UDP输出
TCP输出 每一个TCP套接字有一个发送缓冲区,我们可以使用SO_SNDBUF套接字选项来更改该缓冲区的大小.当某个应用进程调用write时,内核从该应用进程的缓冲区中复制所有数据到(或是应用程序的缓 ...
- (NO.00004)iOS实现打砖块游戏(五):游戏场景类
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 创建游戏场景类头文件 在Xcode创建新GameScene类,继 ...
- iOS中 Swift初级入门学习(三)
// // main.swift // LessonSwift-03 // // Copyright (c) 2015年 韩俊强. All rights reserved. // import Fou ...
- Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线
Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线 我们在开发中常常会注意到一些Crash,这正是很头疼的,而且Crash会带来很多意想不到的状态,很恶心 ...
- [TCP] 网络协议流程图
之前在跟别人讲协议的时候总是找不到类似的图,这次再看python网络编程书籍的时候找到了一个,留存一份. 清晰的看到不同协议在不同层的传输过程!
- JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口
JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一. ...
- Leetcode_102_Binary Tree Level Order Traversal
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41929059 Given a binary tree, r ...
- 一堆C++人找不出内存泄露
一堆C++人找不出内存泄露 内存泄露就像痔疮对于男人,对于C/C++程序员来说,是顽疾.尤其一堆C++人聚集在一起,准备把程序深处的虫子抓出来的时候,那景象是热火朝天,不亦乐乎. 突然,小白甲发布了一 ...