在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之行为的更多相关文章

  1. MCV 和 MTV框架基本信息

    一 . MCV # web服务器开发最著名的MVC模式 M : model.py 就是和数据库打交道的, 创建表等操作 V : view 视图(视图函数,就是装HTML文件的) C : control ...

  2. SSE图像算法优化系列二十三: 基于value-and-criterion structure 系列滤波器(如Kuwahara,MLV,MCV滤波器)的优化。

    基于value-and-criterion structure方式的实现的滤波器在原理上其实比较简单,感觉下面论文中得一段话已经描述的比较清晰了,直接贴英文吧,感觉翻译过来反而失去了原始的韵味了. T ...

  3. 二、CI框架之MCV模型

    一.关于MCV,大概就是下图所示: 模型(model)-视图(view)-控制器(controller) M用来处理数据库,V用来显示界面,C用来控制 二.对应到CI的源码,对应的是这3个目录 不忘初 ...

  4. MCV 的几种表单提交方式

    一,MVC  HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){}   其中actionName ...

  5. (day55)七、查询优化、MTV和MCV、choices、AJAX、序列化

    目录 一.ORM查询优化 (一)only与defer (1)only (2)defer (二)select_related与prefatch_related (1)select_related (2) ...

  6. 二十一、CI框架之MCV

    一.我们在M模型文件里面添加一个文件,代码如下: 二.在C控制器中加载模型,并调用模型函数,输出达到View,控制器代码如下: 三.在View里面输出控制器传过来的参数 四.显示效果如下: 五.我们对 ...

  7. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  8. C#中如何在Excel工作表创建混合型图表

    在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...

  9. 玩转spring boot——MVC应用

    如何快速搭建一个MCV程序? 参照spring官方例子:https://spring.io/guides/gs/serving-web-content/ 一.spring mvc结合thymeleaf ...

随机推荐

  1. 【NOIP2009 T3】 最佳贸易 (双向SPFA)

    C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道 ...

  2. Java注释

    注释:用于注解说明解释程序的文字.提高了代码的阅读性. 一:单行注释 "//注释文字" 二:多行注释 "/*注释文字*/" 三:文档格式 "/**注释 ...

  3. 堆排序(c++第一次尝试)

    对排序的实现思路有两种 第一种:1.构建最小堆.2.将最小堆的堆顶元素取出放到辅助数组的0号下标.3.重新调整成最小堆(向上调整) 4.重复2-3 第二种:1.构建最大堆.2.将堆顶元素(0号)与最后 ...

  4. Python非阻塞网络通信Howto

    在Python中,你使用socket.setblocking(0)使它无阻塞.在C中,它更复杂,(一方面,你需要在BSD风格O_NONBLOCK和几乎不可区分的Posix风味O_NDELAY之间进行选 ...

  5. SQL 语言 - 数据库系统原理

    SQL 发展历程 从 1970 年美国 IBM 研究中心的 E.F.Codd 发表论文到 1974 年 Boyce 和 Chamberlin 把 SQUARE 语言改为 SEQUEL 语言,到现在的 ...

  6. Postgresql FATAL: could not create semaphores: No space left on device

    昨天安装完成pg 9.5后,启动报错: FATAL:  could not create semaphores: No space left on device DETAIL:  Failed sys ...

  7. [2014.01.27]wfRadar 雷达图组件 2.5

    全新开发的雷达图组件--wfRadar,使用简单,功能强大,图像处理效果极佳. 组件支持多种图片格式,包括bmp,jpg,gif,wmf,emf,ico,png,pcx,tif,tga,pcx,dcx ...

  8. ubuntu 常见问题

    1.problem 1 用apt-get安装时,提示:E could not get lock /vaa/lib/dpkg/lock -open等 reasons :可能是由于上次使用apt-get ...

  9. MySQL服务 - MySQL变量类型及变量设置

    一.MySQL变量类型: MySQL通过变量来定义当前服务器的特性,保存状态信息等.我们可以通过手动更改变量的值来配置MySQL,也可以通过变量获得MySQL的当前状态信息.MySQL的变量类型可以从 ...

  10. div加边框

    一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px dashed #000 代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #0 ...