MCV之行为
在Controller中的方法都称为行为,所以的公共方法都可以在浏览器中调用,返回值为:ActionResult的类型或其子类,这个类为抽象类,所以这为抽象编程,
方法的结果返回为直接或间接继承自ActionResult的类型。
1.ViewResult: 使用View()可以指定一个页面,也可以指定传递的模型对象,如果没有指定参数则表示返回与Action同名的页面。
public ActionResult Index()
{
ViewData["tt"] = "admin";
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem()
{
Selected = true,
Text = "中国",
Value="1"
});
list.Add(new SelectListItem()
{
Selected = false,
Text = "美国",
Value = "2"
});
list.Add(new SelectListItem()
{
Selected = false,
Text = "日本",
Value = "3"
});
ViewData["ddlList"] = list;
Person p = new Person();
return View("Show");
}
2.ContentResult:使用Content(String content)
public ActionResult Say()
{
return Content("你好,中国!");
}
3. RedirectResult:使用Redirect(string url) 将结果转身到其他的Action
public ActionResult RedirectTest()
{
return Redirect(Url.Action("Index", "Home"));
}
4. JsonResult:使用Json(object data) 将data序列化为Json数据并返回,推荐加上JsonRequestBehavior.AllowGet 这样如果客户为GET请求也可以处理了。
public ActionResult JsonTest()
{
Person p=new Person()
{
Age=10,
QQ="123"
};
return Json(p,JsonRequestBehavior.AllowGet);
}
public ActionResult JsonTest()
{
List<Person> lPersonInfo = new List<Person>();
Person p = new Person()
{
Age = 10,
QQ = "123"
};
Person p1 = new Person()
{
Age = 10,
QQ = "123"
};
lPersonInfo.Add(p);
lPersonInfo.Add(p1);
return Json(lPersonInfo, JsonRequestBehavior.AllowGet);
}
在内页中就会返回这样的结果:
1.{"Age":10,"QQ":"123"}
2.[{"Age":10,"QQ":"123"},{"Age":10,"QQ":"123"}]
参数的获取:
第一种:Request["键"]的方式获取;
传递:
<a href="@Url.Action("Add","Hello")?id=1"></a>
获取并发送:
public ActionResult Add()
{
int id=int.Parse(Request["id"]);
ViewBag.Id=id;
return View();
}
输出: @ViewBag.Id;
第2种方式:自动装配
又有两种 a.参数个数少时可以这样一个一个传过来,
就是通过表单传过来的参数的id和行为 参数列表id 相同 行为就会自动给你转换
public ActionResult Add(int id)
{
int id = int.Parse(Request["id"]);
ViewBag.Id = id;
return View();
}
[HttpPost]
public ActionResult Add(int id)
{
int id = int.Parse(Request["id"]);
ViewBag.Id = id;
return View();
}
在控制器的方法【行为】的重载
1.参数不同以外,
2.请求类型不同 如get,post [HttpGet]【默认请求格式】 [HttpPost]
他们属于行为的 特性,他就告诉clr怎么去解析这个方法,怎么去执行。
b.如果参数个数特别多这样一个一 个传特别麻烦,就需要用一个封装该显示model的对象,他内部帮我们做了完整的处理:
public ActionResult AddPerson()
{
return View();
}
[HttpPost]
//自动装配:可以完成自定义类型的参数的自动装配
//Person=new Person();
//person.Age=request["Age"];
public ActionResul AddPerson(Person person)
{
ViewData.Model=person;
return View("AddPerson1");
}
MCV之行为的更多相关文章
- MCV 和 MTV框架基本信息
一 . MCV # web服务器开发最著名的MVC模式 M : model.py 就是和数据库打交道的, 创建表等操作 V : view 视图(视图函数,就是装HTML文件的) C : control ...
- SSE图像算法优化系列二十三: 基于value-and-criterion structure 系列滤波器(如Kuwahara,MLV,MCV滤波器)的优化。
基于value-and-criterion structure方式的实现的滤波器在原理上其实比较简单,感觉下面论文中得一段话已经描述的比较清晰了,直接贴英文吧,感觉翻译过来反而失去了原始的韵味了. T ...
- 二、CI框架之MCV模型
一.关于MCV,大概就是下图所示: 模型(model)-视图(view)-控制器(controller) M用来处理数据库,V用来显示界面,C用来控制 二.对应到CI的源码,对应的是这3个目录 不忘初 ...
- MCV 的几种表单提交方式
一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){} 其中actionName ...
- (day55)七、查询优化、MTV和MCV、choices、AJAX、序列化
目录 一.ORM查询优化 (一)only与defer (1)only (2)defer (二)select_related与prefatch_related (1)select_related (2) ...
- 二十一、CI框架之MCV
一.我们在M模型文件里面添加一个文件,代码如下: 二.在C控制器中加载模型,并调用模型函数,输出达到View,控制器代码如下: 三.在View里面输出控制器传过来的参数 四.显示效果如下: 五.我们对 ...
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- C#中如何在Excel工作表创建混合型图表
在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...
- 玩转spring boot——MVC应用
如何快速搭建一个MCV程序? 参照spring官方例子:https://spring.io/guides/gs/serving-web-content/ 一.spring mvc结合thymeleaf ...
随机推荐
- 如何把一个用户加入sodu组
在一个命令前加sudo,可以使用超级用户的权限执行该命令.但并不是任何用户都可以使用sudo,只有用户属于sudo组时才能使用这个命令. 如 果希望把一个用户加入sudo组,可以用root登录系统,然 ...
- 链表c++实现一
#include <iostream>using namespace std; typedef char nodeEntry; struct Node{ //数据成员 nodeEntry ...
- C++联合体(union)
C++的union本质上也是个类,跟struct性质几乎一致但是有一个最大的区别,数据共享内存 说到共享内存就要说下union的内存分配 union的大小是按照union里面的成员内存的最大值而分配的 ...
- OpenGL法向量变换
OpenGL光照开启时,法向量用于决定特定顶点或面上接受到光照的多少.光照处理过程作用于观察坐标空间,因此,模型对象坐标系的法向量也需要使用GL_MODELVIEW矩阵变换到观察坐标系. 然而,法向量 ...
- ext.net与extjs的关系
一.在客户端,ext.net中可以使用extjs的语法. 如发送ajax请求, Ext.Ajax.request({ url: 'Common/getNode', ...
- 跨域请求解决方法(JSONP, CORS)
1.跨域 假设我们页面或者应用部署在 http://www.aaa.com 上了,而我们打算从 http://www.bbb.com 请求提取数据.一般情况下,如果我们直接使用 AJAX 来请求将会失 ...
- C#遍历指定文件夹中的所有文件和子文件夹
参考:http://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html DirectoryInfo TheFolder=new Direc ...
- 打造完美的xml技术解决方案(dom4j/xstream)
转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...
- C# 下载搜狗词库
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); string[] userAgent = new string[]{& ...
- mysql5.5 物理删除binlog文件导致的故障
故障现象: 中午12点多,一套主从集群的主库因为没有配置大页内存,发布时导致OOM,MYSQL实例重启了,然后MHA发生了切换.切换过程正常.切换后需要把原master配置成新master的slave ...