asp.net mvc课程设计,asp.net mvc 控制器
我以前在ASP.NET学过MVC 3,但只是匆匆一瞥。这次,我特意拿起了一本书。在系统的学习下,这里只是对一些重点的摘录和总结,并不是详细的介绍。是读书笔记。希望能对大家有所帮助。
第一章导言
MVC模式的引入
MVC(模型-视图-控制器)模式是一种用户界面模式,它将应用程序的用户界面分为三个部分:
L: group类,它描述了要处理的数据以及修改和操作数据的业务规则。
l视图:定义应用程序用户界面的显示模式。
l:用于处理来自用户的通信、整个应用程序过程及其特定应用程序逻辑的一组类。
1.1.3MVC在web框架中的应用
在ASP。NETMVC,MVC的三个主要部分定义如下:
描述一些程序员感兴趣的问题领域。这些类通常封装存储在数据中的数据,以及用于操作这些数据和在特定领域中执行业务逻辑的代码。在ASP.NET,该模型相当于使用工具的数据访问层,其中包括NHibernate,一个实体框架和特定逻辑的自定义代码。
L view:一个动态生成Html页面的模板
l:一个特殊的类,它协调视图和模型之间的关系,响应用户输入,并与模型对话。这个类在APS.NETMVC中通常表示为Controller。
ASP。NET采用了大多数基于MVC的Web框架使用的一些基本原则:
l约定胜于配置。
我不重复
我试着让它不被拔掉。
l尽量帮助开发者,必要时允许他们自由发挥。
1.1.4ASP.NETMVC3应用广泛。原因:
友好的视图表示,包括新的Razor引擎。
支持NET4数据注释
l改进了模型验证,验证配置文件是高效的。
l与DependencyResolution和全局操作过滤器的强关联
l支持JavaScript、JQuery验证和JSON绑定
我支持NuGet。
1.1.5Razor视图引擎
Razor是专门设计作为视图引擎的语法,主要功能是集中生成HTML代码模板。
Razor语法设计目标:
l简洁、富于表现力和灵活性
比如:@ foreach(varalbumimodel . albums)
{
里
ahref=@Url。动作(详细信息,新建{ id=相册。AlbumId}) span @album。标题/span /a
/a
}
从标记到代码的转换只能由@字符表示,Razor引擎将自动检测从代码到标记的转换。
l简单易学。当你需要写作的时候。NET代码,只需输入@符号,然后输入HTML代码。
我支持所有的文本编辑器。
强大的感知功能
l单元测试:Razor view engine的核心编译引擎对System.web或ASP.NET没有依赖性,可以进行单元测试,甚至执行命令。
1.1.6改进验证
1.支持。NET4数据注释
在l.net框架中,系统的显示属性。componentmodel.dataannotations可以本地化。
长度NET4添加了ValidationAtribute特性,以便更好地与整个模型验证上下文系统一起工作。
2.改进模型验证的简化验证。
1.1.7强大的JavaScript支持
1.非侵入式Javascript(不影响网页标记)
页面元素通过元素的ID或类链接,而不是通过事件特征(比如onclick和onsubmit)链接。
ASP。NETMVC3以两种方式支持非侵入式JavaScript。
LAjax辅助类(比如Ajax。ActionLink和Ajax。BeginFrom)结合了扩展特性(数据特性)和Jquery技术,为表单标签提供简洁的标记。
LAjax验证不再发送完整的验证规则,而是应用数据特性。使用data- feature时,更容易使用和重用JQuery和其他JavaScript库的验证信息。
2.JQuery验证
3.JSON绑定
JSON(JavascriptobjectNotation)绑定是通过JsonValueProviderFactory支持的。
高级功能
1.支持dependencyresolver。
简化应用程序中依赖注入的使用,使分离应用程序组件变得更容易,从而使配置组件进行测试变得更容易。
例如,添加了对依赖关系解析器的支持:
l控制器(注册和注入控制器工厂,注入控制器)
l视图(注册并注入视图引擎,将依赖注入视图页面)
l操作过滤器(定位和注入过滤器)
l型粘合剂(配准和注射)
l模型验证提供者(注册和注入)
l模型元数据提供者(注册和注入)
l价值提供者(注册和注入)
2.全局操作过滤器
应用于程序中所有操作方法的全局操作过滤器扩展了这个函数(ASP。NETMVC2)
1.2ASP.NETMVC和约定
默认情况下,ASP。NETMVC应用程序高度依赖于约定。
例如,在解析视图模板时,ASP。缺省情况下,NETMVC将在应用程序下的\ \Views\[ContorllerName]\] \目录中找到视图模板。
1.协议比配置好。
每个控制器类的名字以Controller结尾,在Controller文件夹中。
l所有视图都放在一个单独的文件夹views directory中。
l控制器使用的视图位于视图主目录的子目录中,这个子目录的名称是通过从控制器的名称中减去控制器来确定的。
2.达成协议以简化沟通
写交流的代码,主要是针对两种不同的受众。
l清晰明确的指令需要传递给计算机执行。
l开发人员需要阅读你的代码,以便后期维护和调试。
第二章控制器
2.1主计长的作用
MVC模式下的控制器主要负责对应用户的输入,通常在响应时修改模型。这样,MVC模式下的控制器主要关心的是应用流程、输入数据的处理以及相关试题输出数据的提供。
URL与存储在Web服务器硬盘上的文件不直接相关,但与控制器类的方法相关。
MVC提供方法调用的结果,而不是动态生成的页面。
2.2控制器中的参数
在ASP的默认路由协议中。NETMVC,操作方法名后面的URL片段作为名为ID的参数。如果操作方法中有一个名为ID的参数,这个URL片段将自动作为参数传递。
例如/store/details/5=/store/details?id=5
控制器操作感觉就像web浏览器直接调用控制器类中的方法。类、方法和参数都体现为URL中的特定路径片段或查询字符串,结果是返回给浏览器的字符串,因此忽略以下细节:
L route将URL映射到操作。
l使用视图作为模板生成一个字符串返回给浏览器。
l操作很少返回原始字符串,通常返回适当的ActionResult来处理诸如HTTP状态代码和调用视图模板系统之类的事情。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。