ASP.NET MVC4 学习系统三(控制器Controller)
控制器(Controllers)
在MVC架构模式的上下文里,控制器响应用户的输入(比如,用户点击“保存”按钮),并协调模型、视图以及(经常)数据访问层。在ASP.NET MVC程序里,控制器就是包含被路由框架处理请求时调用的方法的类。
控制器操作
控制器类并无特别之处,跟别的.NET类几乎没什么区别。事实上,控制顺类里的方法(称为控制器里的操作) 做了处理请求过程中的主要工作。经常听到控制器和控制器操作这种词语,在本书里也这样称呼,其实MVC模型并不会区分二者。但是ASP.NET MVC框架 十分关注控制器操作,因为它包含了处理请求的实际逻辑代码。
例如,HomeContronller 类包含三个操作:Index,About 和Contact.然而,假设默认的路由模式是{controller}/{action}/{id},当一个请求的URL是 /Home/About时,路由框架会决定由HomeController类中的About 方法处理这个请求。随后,ASP.NET MVC框架会创建HomController的实例,并执行About()方法。
这个例子中,About()方法非常简单:它通过ViewBag 属性把数据传递给视图,然后asp.net mvc框架通过调用 View()方法来显示名为(About)的视图,这个操作返回一个ViewResult类型的操作结果。
操作结果
值得注意的是,控制器的工作就是告诉asp.net mvc 框架下一步应该做什么,而不是怎么做。这个沟通过程通过使用+ActionResult+s来实现,返回值就是控制器提供的操作。例如,当控制器决定如何显示视图时,它就会告诉asp.net mvc 框架通过返回 ViewResult来展示视图,而不会自己渲染视图。这种松耦合的设计,也是操作中“分离关注点”原则的直接体现。
尽管每个控制器的操作都要返回ActionResult,但是大部分时间不需要你手动完成。相反,只需要使用System.Web.MVc.Controller基类提供的帮助方法即可,例如:
Content():返回文件类型的ContentResult,比如“Hello ,world!”。
File():返回文件类型的内容FileResult,比如PDF.
HttpNotFound()返回包含404HTTP状态码的HttpNotFoundResult.
JavaScript():返回JavaScriptResult
ASP.NET MVC4 学习系统三(控制器Controller)的更多相关文章
- ASP.NET MVC4 学习系统一(项目模板)
项目模板 1.空模板 空模板用于创建ASP.NETMVC 4网站的架构,包含基本的文件夹结构,以及需要引用的asp.netmvc程序集,也包含可能要使用的javaScript 库.模板同样包 ...
- ASP.NET MVC4 学习系统四(视图)
视图(Views) 在ASP.NET MVC框架中,想要返回给用户HTML的控制器操作,就要返回ActionResult类型的ViewResult实例,ActionResult知道如何渲染应答结 ...
- ASP.NET MVC4 学习系统五(Razor)
Razor ,你好! Razor 是一种把代码和内容进行平滑集成的语法.尽管它引入了一些新的符号和关键字,但是Razor并不是一种新的语法.相反,Razor允许用户使用已知的语言来编写代码 ...
- ASP.NET MVC4学习笔记路由系统概念与应用篇
一.概念 1.路由是计算机网络中的一个技术概念,表示把数据包从一个网段转发至另一网段.ASP.NET中的路由系统作用类似,其作用是把请求Url映射到相应的"资源"上,资源可以是一段 ...
- asp.net mvc4 学习笔记一(基本原理)
做了8年的asp.net webform,用过MVVM但还没用过MVC , 虽然项目不用MVC,但是还是想了解一下,今天第二天学习,以下是学习心得. VS2012默认带有asp.net mvc3和as ...
- ASP.NET MVC 学习2、从Controller传递数据到View
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view 一,Control ...
- asp.net mvc4 学习1
1 简介:微软在很早就看到了基于windows系统的web开发平台的需求,这时便开始提出自己的解决方案即微软的第一个基于web开发的平台ASP.再后来随着需求和性能的要求再2002年推出第二个解决方案 ...
- ASP.NET MVC4 学习记录
之前在学习Artech的<ASP.NET MVC4框架揭秘>一书,学习过程中画了ASP.NET MVC4框架的草图,方便记忆.
- SpringMVC学习03(控制器Controller)
3.控制器Controller 3.1 控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现. 控制器负责解析用户的请求并将其转换为一个模型. 在Spr ...
随机推荐
- Apache日志不记录图片文件设置方法和来源日志的配置
Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...
- Spring初理解
spring配置文件是一个xml格式的文件,类似如下: <beas> <bean id= 'a' class = '包名.类名'></bean> <bean ...
- DBA_Oracle AWR Report性能监控报表(案例)
2014-08-22 Created By BaoXinjian
- BestCoder HDU 5750 Dertouzos
Dertouzos 题意: 有中文,不说. 题解: 我看了别人的题解,还有个地方没懂, 为什么是 if(d%prime[i]==0) break; ? 代码: #include <bits/st ...
- MST_prim
刚刚发了mst 的kruskal,现在再来一发,说一说prim咯. prim适用于稠密图. 与kruskal不同,prim是从一个点开始,不断加入新的点直至连通所有点. 讲讲prim的过程,我们假定有 ...
- Redirect 原理
mvc .net 中,从服务器端跳转页面有很多方法 有些不会改变浏览器地址栏的地址,这个好理解,mvc本身的机制就是action的名字不一定是view的名字 我们请求的不是文件名,在action中我们 ...
- linux命令(5)文件操作:ls命令、显示文件总个数
一:ls命令是最常用的linux命令了:下面是ls --help里面的用法 在提示符下输入ls --help ,屏幕会显示该命令的使用格式及参数信息: 先介绍一下ls命令的主要参数: -a 列出目录下 ...
- JavaScript面向对象编程指南
引言 面向对象程序设计 基本数据类型.数组.循环及条件表达式 基本数据类型 函数 函数Function 预定义函数 变量的作用域 函数也是数据 闭包 对象 原型 原型 继承 原型链 浅拷贝与深拷贝 原 ...
- 通过Application传递数据代码
使用Application传递数据步骤如下:创建新class,取名MyApp,继承android.app.Application父类,并在MyApp中定义需要保存的属性 在整个Android程 ...
- http请求中java中的302和sendRedirect的区别
============================================================================================ getCont ...