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 ...
随机推荐
- 以application/json 方式提交 然后用在php中读取原始数据流的方式获取 在json_encode
html 如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>& ...
- C 语言中的优先级
先看一段代码: /********************************************************************* * @fn bdAddr2Str * * ...
- 关于javascript中闭包的理解
闭包就是能够读取其他函数内部变量的函数. 在javascript中,只有函数内部的子函数可以读取局部变量,因此,我理解闭包就是定义在一个函数内部的函数. 例子: var f1 = function() ...
- RestEasy 3.x 系列之四:使用Hibernate_Validator进行数据校验
使用Hibernate_Validator进行数据校验,好处不言而喻:规范统一,低耦合度. 1.pom.xml <dependency> <groupId>org.hibern ...
- C#子类调用基类构造备忘
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace First ...
- updatepanel 回发或回调参数无效
不同于网上的其它情况,这个是由于通过js修改了服务器控件Select的列表项数目,导致验证viewstate时出现的问题.最后改为通过服务器代码来给Select加选项,就不会报这个错误了. 服务器控件 ...
- fastdfs-nginx扩展模块源码分析
FastDFS-Nginx扩展模块源码分析 1. 背景 在大多数业务场景中,往往需要为FastDFS存储的文件提供http下载服务,而尽管FastDFS在其storage及tracker都内置了htt ...
- oracle case when
http://www.cnblogs.com/kevin2013/archive/2010/07/02/1769682.html
- window安装jekyll
安装Ruby Ruby 切记添加环境变量: 安装 RubyGems RubyGems 解压后进入目录输入: ruby setup.rb 安装Jekyll gem install jekyll 安装je ...
- SQL Server常用的性能诊断语句
/* 常规服务器动态管理对象包括: dm_db_*:数据库和数据库对象 dm_exec_*:执行用户代码和关联的连接 dm_os_*:内存.锁定和时间安排 dm_tran_*:事务和隔离 dm_io_ ...