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 ...
随机推荐
- 【转载】App.config/Web.config 中特殊字符的处理
写一个网站,遇到一个问题,发布以后,提示错误,但是即使打开错误提示(在web.config中打开),还是只提示错误,没提示什么地方错误,这让我知道了:是webconfig本身的错误,经过排除,是链接字 ...
- 国内最新Unity3D视频教程合辑
麦子学院最新Unity3D视频教程上线啦,此为现目前国内最全.最新Unity3D教程,分享给广大小伙伴,希望对大家学习Unity3D有帮助: 第一阶段:Unity3D概要及入门 零基础学C#开发 Un ...
- Yii2 利用controllerMap自定义控制器类
版权声明:本文为博主原创文章,未经博主允许不得转载. Yii2框架为我们自定义好的 controllers,Models,views,标准的MVC结构框架,但是有些时候我们写接口希望结构更加清晰而不 ...
- Tomcat启动脚本
记录一个比较好的tomcat启动脚本,截取<OneinStack>,修改如下两个参数即可用. 使用之前修改下面2个参数: #Location of JAVA_HOME (bin files ...
- 关于使用微信登录第三方APP的实现(Android版)
使用微信登录APP,免去注册过程,现在已经有很多的类似应用了.集成该功能过程不复杂,但还是有一些地方需要注意的. 开始之前,需要做下面的准备工作. 1.到微信开放平台注册你的APP,并申请开通微信登录 ...
- 在ASP.NET Web API中使用OData
http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在A ...
- Android开发中经常使用的Content-Type简介
1.application/x-www-form-urlencoded:最常使用的类型(默认也是这种类型),主要用于提交不带文件的post数据. 2.multipart/form-data:需要结合b ...
- ubuntu 更换系统语言,Change System Language
1.打开设置,打开“Language Support”. 2.如果列表中没有你的语言,点击“Install/Remove Language”,下拉选择你的语言,点击“Apply Changes”. 3 ...
- Debian MySQL 卸载和安装 PHP安装
如果是apt-get安装的 sudo apt-get --purge remove mysql-serversudo apt-get --purge remove mysql-clientsudo a ...
- R语言-数据高级管理
数学函数 abs() 绝对值 sqrt() 平方 ceiling() 向上取整 floor() 向下取整 trunc() 截取整数部分 round(x,digits = n) 保留几位小数 统计函数 ...