ASP.NET MVC3学习心得-----入门和控制器

简介: 之前有学过ASP.NET MVC 3,但那也只是浮光掠影般的看了看而已,这次专门接了本书,系统的学习下,这里只是摘录总结一些重点而已,并非详细的介绍,算是读书笔记吧,希望可以对大家有所帮助。 第一章入门 1.

之前有学过ASP.NET MVC 3,但那也只是浮光掠影般的看了看而已,这次专门接了本书,系统的学习下,这里只是摘录总结一些重点而已,并非详细的介绍,算是读书笔记吧,希望可以对大家有所帮助。

第一章入门

1.1.2MVC模式简介

MVCModel-View-Contorller)模式是一种用户界面模式,将应用程序的用户界面分为三部分:

模型:组类,描述要处理的数据以及修改和操作数据的业务规则

视图:定义应用程序用户界面的显示方式

控制器:一组类,用于处理来自用户、整个应用程序流程及其特定应用程序逻辑的通信

1.1.3 MVCweb框架中的应用

ASP.NET MVC 中,MVC的三个主要部分的定义如下:

模型:描述程序设计人员感兴趣问题域的一些类,这些类通常封装存储在数据中的数据,以及操作这些数据和执行特定域业务逻辑的代码,在ASP.NET中模型相当于用了某个工具的数据访问层,这个工具包括实体框架、特定逻辑自定义代码组合在一起的NHibernate

视图:动态生成Html页面的模板

控制器:协调视图和模型之间关系的特殊类,响应用户输入,并且和模型对话,在APS.NET MVC中该类通常以Controller表示

ASP.NET 采用了大部分基于MVCWeb框架所使用的一些基本原则:

约定优于配置

不重复

尽量保持可拔插性

尽量为开发人员提供帮助,必要时允许开发人员自由发挥

1.1.4ASP.NET MVC3 得到广泛应用原因:

友好的视图表达,其中包括新的Razor引擎

支持.NET4数据注解

改进了模型验证,验证简介高效

与依赖项解析(Dependency Resolution)和全局操作(Global Action Filter)过滤器的强关联

支持JavaScriptJQuery验证和JSON绑定

支持使用NuGet

1.1.5 Razor视图引擎

Razor被专门设计成视图引擎的语法,主要作用:集中生成HTML代码模板

Razor语法设计目标:

简洁、富有表现力和灵活性

例如:@foreachvar album in Model.Albums)

{

 <li>

   <a href="@Url.Action("Details",new{id=album.AlbumId})"><span>@album.Title</span></a>

</a>

}

 由标记向代码过渡仅由@字符来表明即可,而代码向标记过渡Razor引擎会自动检测

容易学习,当需要编写.NET代码时,输入@符号再输入HTML代码即可

支持所有的文本编辑器

强大的只能感知功能

单元测试:Razor视图引擎核心编译引擎与System.web或者ASP.NET没有任何依赖关系,能执行单元测试,甚至执行命令

1.1.6验证的改善

1、支持.NET4数据注解

.NET框架中System.ComponentModel.DataAnnotationsDisplay特性可以本地化

.NET4增加了ValidationAtribute特性更好的与整个模型验证上下文系统工作

2、改进模型验证的简化验证

1.1.7强大的JavaScript支持

1、非入侵式Javascript(不影响网页标记)

链接页面元素是通过元素的ID或类而不是通过事件特性(例如:onclickonsubmit

ASP.NET MVC 3采用两种方法支持非侵入式JavaScript

Ajax辅助类(如:Ajax.ActionLinkAjax.BeginFrom)结合利用扩展的特性(data-特性)和Jquery技术为Form标签提供简洁的标记

Ajax验证不再将验证规则以一块发出,而是应用data-特性发出,data-特性的使用时的应用JQuery和其他JavaScript库的验证信息的利用和重用更加简单

2、JQuery验证

3、JSON绑定

通过JsonValueProviderFactory支持JSONJavascript object Notation)绑定

1.1.8高级特性

1、支持依赖项解析(dependency resolver

简化了在应用程序中依赖注入的使用,使得分离应用程序组件更加容易,从而使组件更容易配置测试

举例已添加对依赖解析器的支持:

控制器(注册和注入控制器工厂,注入控制器)

视图(注册和注入视图引擎,向视图页注入依赖关系)

操作过滤器(定位和注入过滤器)

模型绑定器(注册和注入)

模型验证提供器(注册和注入)

模型元数据提供器(注册和注入)

值提供器(注册和注入)

2、全局操作过滤器

运用于程序中所有操作方法的全局操作过滤器扩展了这一功能(ASP.NET MVC 2中的Attribute

1.2ASP.NET MVC和约定

在默认的情况下ASP.NET MVC应用程序对约定的依赖性很强

例如:当解析视图模板时,默认情况下,ASP.NET MVC 会在应用程序下\Views\[ContorllerName]\目录中找出视图模板

1、约定优于配置

每一个Controller类的名字以Controller结束,且都在Controller文件夹中

所有的视图放在一个单独的文件夹Views目录中

控制器使用的视图是在Views主目录中的一个子目录中,且这个子目录的名字是根据控制器的名字减去Controller来确定的

2、约定简化通信

编写代码进行通信主要面向两个不同的听众

需要清晰无二义性的指令传递给计算机,让它来执行

需要让开发人员读懂您的代码,以便后期的维护、调试

 

 

                第二章控制器

2.1控制器的角色

MVC模式中的控制器主要负责相应用户的输入,并且在响应时通常会修改模型(Model)通过这种方式,MVC模式中控制器主要关注的是应用程序流、输入数据的处理,以及对相关试题输出数据的提供

URL不是与存储在Web服务器硬盘上的文件有直接的对应关系,而是与控制器类的一个方法有关。

MVC提供的是方法调用结果,而不是动态生成的页面

2.2控制器中的参数

ASP.NET MVC的默认路由约定,将操作方法名称后边的URL这个片段作为名称为ID的参数,如果操作方法中有名称为ID的参数,则会自动将这个URL片段作为参数传递过来

如:/Store/Details/5  <=> /Store/Details?id=5

控制器操作的感觉像是web浏览器直接调用控制器类中的方法,类、方法和参数都被具体化为URL中特定的路径片段或查询字符串,结果就是一个返回给浏览器的字符串,这样就忽略了以下细节:

路由将URL映射到操作的方式

将视图作为模板生成向浏览器返回的字符串

操作很少返回原始的字符串,通常返回合适的ActionResult来处理像HTTP状态码和调用视图模板系统这样的事项

 

 

from:http://www.cnblogs.com/Olive116/archive/2012/11/29/2794651.html

目录
相关文章
|
24天前
|
开发框架 .NET 物联网
.NET从入门到精通,零基础也能搞定的基础知识教程
.NET从入门到精通,零基础也能搞定的基础知识教程
19 0
|
29天前
|
前端开发 Java Spring
ssm中spring mvc找不到控制器,报错404
ssm中spring mvc找不到控制器,报错404
14 0
|
29天前
mvc.net分页查询案例——控制器(HomeController.cs)
mvc.net分页查询案例——控制器(HomeController.cs)
8 0
|
1月前
|
设计模式 前端开发 数据处理
MVC架构中,控制器和模型之间是如何交互的
MVC架构中,控制器和模型之间是如何交互的
9 0
|
1月前
|
存储 设计模式 前端开发
请解释 Web 应用程序的 MVC(模型-视图-控制器)架构。
【2月更文挑战第26天】【2月更文挑战第89篇】请解释 Web 应用程序的 MVC(模型-视图-控制器)架构。
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
2月前
|
开发框架 .NET 程序员
C#/.NET该如何自学入门?
C#/.NET该如何自学入门?
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
114 0
|
9月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
67 0