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 ...
随机推荐
- js本地图片预览
相信大家都遇到过上传图片之前预览,网上找了很多,但都不是所有浏览器都支持,不过后来找到一个,但自己没有完全实验. 代码如下: <script> //使用IE条件注释来判断是否IE6,通过判 ...
- 《C与指针》第十四章练习
本章问题 1.预处理器定义了5个符号,给出了进行编译的文件名.文件行的当前行号,当前日期和时间以及编译器是否为ANSI C编译器.为每个符号举出一种可能的用途. answer:在打印错误信息时,文件名 ...
- jsp之tomcat安装
安装时会碰到一个命令行窗口一闪而过的情况,里面内容是: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 是 ...
- underscore.extend.js
/** * 基于underscore的扩展 * @module lib/underscoreExtend */ (function() { // 全局可能用到的变量 var arr = []; var ...
- Debian普通用户获取root权限|sudo的安装与配置
Debian系统的普通用户需要安装软件时,往往会收到“Permission denied”的提示,这时候需要root权限.那么如何在不登陆超级管理员账户的前提下拥有root权限呢?对于大多数Linux ...
- input中加入搜索图标
刚吃了一份宫保鸡丁刀削面,幸福感满满,写篇博客消耗一下热量. 今天工作遇到的一个问题是在input输入框中加入图标,当输入内容后,图标和提示语一起隐藏,类似于placeholder的功能.如淘宝页面, ...
- ubuntu下安装rpm 文件
正想着如何把rpm package 安装到ubuntu上, 发现了这篇文章,转载一下 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo a ...
- Android学习十二:跑马灯程序实现(简单联系)
package org.tonny; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; ...
- Oracle索引失效问题:WHERE C1='' OR C2 IN(SubQuery),并发请求时出现大量latch: cache buffers chains等待
问题描述: 项目反馈某功能响应时间很长,高峰期时系统整体响应很慢... 获取相应的AWR,问题确实比较严重,latch: cache buffers chains等待,因为这些会话SQL执行时间太长, ...
- Windows Redis使用
一.Redis 的安装 1.Redis 下载 Windows 版本下载:https://github.com/dmajkic/redis/downloads 2.解压到 C:\redis-2.4.5- ...