`

学习 ASP.NET MVC (第一回)理论篇

阅读更多

学习ASP.NET MVC架构,非常不错的东西,想必大家都已经对他有了些了解,此文是基础知识,个人总结,高手绕过。
MVC
三种角色
--Model:用于存储数据的组件
--View:根据Model数据进行内容展示的组件
--Controller:接受并处理用户指令(操作Model),选择一个View并输出内容。
Controller对View进行引用,但是View不知道Controller的存在。Controller和View都是单向引用Model
MVC变种:Observer模式,MVP模式。

MVC与三层架构
三层架构是一种架构模式,它有很明显的层次关系,而MVC是一种表现模式,其中的三个元素没有层次上的先后关系,只是组件之间的协作。

MVC与WebForms
WebForms提倡的是将Web开发抽象成一个组件模型,使用方便,入门容易,但是封装性太强,用好很难,内部有复杂的生命周期和事件处理。

ASP.NET MVC的优势
1.直接,没有太多控件的概念
2.易于对界面逻辑进行单元测试
3.易于前后台人员的配合
....

ASP.NET MVC的组件协作(基本流程)
URL-->Controller(会执行一个方法Action)-->从数据库中获取一个Model对象-->将Model作为ViewData传递给View(Detail.aspx)。
主要的几个步骤:URL Routing,Controller&Action Executing,View Rendering

URL Routing :
ASP.NET MVC使用的是URL进行驱动的,根据程序中指定的规则从URL中确定Controller名,Action名,其他参数。

System.Web.Routing.dll。独立于ASP.NET MVC框架的组件,可用于任何ASP.NET应用程序。作用是将URL转换为RouteData等数据。
使用:
1>.配置UrlRoutingModule。
2>.在Application_Start时添加规定,这里需要注意锁定的问题(由于Web应用程序天生是多线程的)。
3>.规则的顺序。
4>.RouteExistingFiles属性。

在Global.asax文件中定义:


// URL规则的定义
public static void RegisterRoutes(RouteCollection routes)
{
      routes.MapRoute(
     
" Default " ,
     
" {controller}/{action}/{id} " ,
     
new {action = " Index " ,id = 0 },
     
new {controller = @" ^\w+ " ,id = @" \d+ " });
   
     
// Car/bnw.abc
      routes.MapRoute(
     
" Car " ,
     
" Car/{make}.{model} " ,
     
new {controller = " car " ,action = " Index " },
     
new {make = @" (acural|bnw) " });
}

protect
void Application_Start()
{
      RegisterRoutes(RouteTable.Routes);
      RouteTable.Routes.RouteExistingFiles
= true ;
}

如果URL访问的是磁盘上的一个物理文件,默认情况下不会被URL Routing,可以用RouteTable.Routes.RouteExistingFiles=true;避免。

Routing和URL Rewrite的区别:
URL Rewrite:改变程序处理的URL(ASP.NET WebFrom)
URL Route:根据URL的规则选择执行(MVC)

Controller & Action
通过URL Routing确定的Controller类和Action方法。Action中执行的是表现逻辑,根据用户传入的参数(URL)来操作Model(执行业务逻辑)-->获取数据-->选择一个View进行输出。
Action执行之后返回的是一个ActionResult(生成html,页面跳转...)
Controller是一个类,而Action是一个方法。
Conetroller的要求:
1>.继承System.Web.Mvc.Controller类
2>.以Controller结尾
3>.XyzController的名称即为:Xyz-->约定胜于配置
4>.ASP.NET MVC框架会在Web应用程序所引用的所有程序及范围内查找Controller。

Action的要求:
必须是个公有的方法
返回ActionResult类型,也可以返回void。直接使用Response.Write
必须是实例方法
不能使泛型方法
没有标注NonActionAttribute
不能被重载

ActionResult:是一个抽象类表示Action的执行结果,ASP.NET MVC架构将在获得ActionReault之后执行其Execute方法。
内置的ActionResult:ActionRedirectResult:跳转到某个Action。HttpRedirectResult:跳转到任 意地址。RenderViewResult:生成内容。EmptyResult:什么都不做。JsonResult:用于JSON序列化输出。 ContentResult:直接输出字符串。

 

生成View
ViewEngine(表明使用了什么样的View进行生成),它是可替换的。
默认使用aspx,ascx,master
MvcContrib提供了额外的4种ViewEngine。
ASP.NET MVC的默认View:.aspx--页面内容的主体,.master--模板框架,.ascx--局部视图:Html.RenderUserControl方法将一个UserControl生成局部视图。
需继承System.Web.Mvc.ViewPage
--ViewData有个属性为Model
--ViewPage<T>的ViewData为T类型
--默认的ViewPage近似于ViewPage<object>
View中生成html的方式:
1>.内联脚本方式:for{},foreach{}。类似ASP,但是并不是业务逻辑和显示的html放在一起。两者还是分离的。
使用脚本最大的好处就是使用灵活。调试起来是不是不是很方便???
2>.使用控件:Repeater(推荐)可以用来显示一维数据,ListView (推荐)可以用来显示二维数据
3>.使用辅助方法
--HtmlHelper类:提供的一些辅助的方法为我们生成Form,ActionLink,Button,CheckBox,Select(下拉框),Encode....的HTML
方法中提供了很多重载。
--UrlHelper类:生成Url以及与Url相关的东西。比如生成Action的Url。

小结:初步了解下ASP.NET MVC的基本概念和执行流程

分享到:
评论

相关推荐

    ASP.NET MVC企业实战第1章.pdf

    ASP.NET MVC企业实战第1章.pdf

    ASP.NET MVC 4 Web编程

    第1章:ASP.NET MVC基础 第2章:ASP.NET Web Form开发人员必读 第3章:使用数据 第4章:客户端开发 第5章:Web应用程序架构 第6章:使用AJAX提升网站体验 第7章:ASP.NET Web API 第8章:高级数据 第9章:安全 第10...

    Pro ASP.NET MVC 5 (英文pdf+源码)

    Pro ASP.NET MVC 5 APress, 2013 by Adam Free...这是第一本出版的 ASP.NET MVC5 英文版书籍 源码太大, 压缩后约 202M. 依章节分成5个各自独立的压缩包上传. Pro ASP.NET MVC 5 (source code)书附源码Part1( 02_08) ...

    学习ASP.NET MVC框架揭秘笔记第一章

    学习ASP.NET MVC框架揭秘笔记第一章

    Pro ASP.NET MVC 5 (source code)书附源码Part1( 02_08)

    Pro ASP.NET MVC 5 (source code)书附源码Part1( 02_08) Pro ASP.NET MVC 5 (source code)书附源码Part2( 09_11) Pro ASP.NET MVC 5 (source code)书附源码Part3( 12_13) Pro ASP.NET MVC 5 (source code)书附源码...

    ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述

    ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述

    ASP.NET MVC 图书

    ASP.NET MVC 图书 第一章 ASP.NET MVC 框架 1、什么是MVC框架 MVC(模型—视图—控制器)框架把一个应用程序拆分成三个主要组件:模型、视图和控制器。使他们各自处理自己的任务。

    ASP.NET MVC5 框架揭秘+源码打包下载

    第1章 ASP.NET + MVC 第2章 路由 第3章 Controller的激活 第4章 Model元数据的解析 第5章 3个描述对象 第6章 Model的绑定(上篇) 第7章 Model的绑定(下篇) 第8章 Model的验证(上篇) 第9章 Model的验证...

    Pro ASP.NET MVC 5 (source code)书附源码Part2( 09_11)

    Pro ASP.NET MVC 5 (source code)书附源码Part1( 02_08) Pro ASP.NET MVC 5 (source code)书附源码Part2( 09_11) Pro ASP.NET MVC 5 (source code)书附源码Part3( 12_13) Pro ASP.NET MVC 5 (source code)书附源码...

    Pro ASP.NET MVC 5 (source code)书附源码Part5( 18_27)

    Pro ASP.NET MVC 5 (source code)书附源码Part1( 02_08) Pro ASP.NET MVC 5 (source code)书附源码Part2( 09_11) Pro ASP.NET MVC 5 (source code)书附源码Part3( 12_13) Pro ASP.NET MVC 5 (source code)书附源码...

    ASP.NET MVC 3高级编程

    《asp.net mvc 3高级编程》 第1章 入门 1 1.1 asp.net mvc简介 1 1.1.1 asp.net mvc如何适应asp.net 1 1.1.2 mvc模式简介 2 1.1.3 mvc在web框架中的应用 2 1.1.4 asp.net mvc 3的发展历程 3 1.1.5 razor视图...

    ASP.NETMVC5网站开发之美【高清PDF】

    第1章 MVC概述 第2章 与数据的对话:Model与ADO.NET 第3章 LINQ:驱动数据的查询功能 第4章 EF 第5章 路由(Routing) 第6章 控制器(Controller) 第7章 异步程序设计 第8章 View:摇曳生姿的美人 第9章 Bootstrap ...

    ASP.NET MVC 4 开发指南PDF

     《ASP.NET MVC 4 开发指南》共分11章,第1章讲解通用的MVC特性,第2章讲述正确的开发观念,第3章以一个简单的例子带领读者快速上手ASP.NETMVC,第4~8章分别介绍了ASP.NETMVC最重要的核心观念与技术解析,其中包括...

    ASP.NET MVC4开发权威指南(高清版)

     《ASP.NET MVC 4 开发指南》共分11章,第1章讲解通用的MVC特性,第2章讲述正确的开发观念,第3章以一个简单的例子带领读者快速上手ASP.NETMVC,第4~8章分别介绍了ASP.NETMVC最重要的核心观念与技术解析,其中包括...

    Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章

    Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章 --操作数据 1、 关于HtmlHelper和UrlHelper 因为大部分的web请求的目标都是向客户端发送HTML代码。因此,Asp.Net MVC也是 为我们创建HTML提供了各种帮助。...

    精通asp.net mvc 5中文版-part1

    精通asp.net mvc 5中文版,英文名pro asp.net mvc 5 由于上传权限限制,分为两个包上传,需要全部下载后才能解压 这是第一部分,压缩工具winrar 5.4 英文版32位

    asp.net mvc3 第一个demo

    本人的asp.net mvc3 第一个demo, 基于vs2010.

    ASP.NET MVC4开发指南高清完整PDF版

     《ASP.NET MVC 4 开发指南》共分11章,第1章讲解通用的MVC特性,第2章讲述正确的开发观念,第3章以一个简单的例子带领读者快速上手ASP.NETMVC,第4~8章分别介绍了ASP.NETMVC最重要的核心观念与技术解析,其中包括...

Global site tag (gtag.js) - Google Analytics