概述

本章您将学会:
1.MVC的概念及使用
2.MVC与ASP.NET的区别
3.路由和URL导向
4.控制器和视图
5.模型与模型状态
6.过滤器
7…….

第1章_MVC与ASP.NET的区别

1.1概述

  • MVC是一种流行的Web应用架构技术,他把Web应用划分成Model、Controller和View三部分!
  • 优点:可测试,可维护等
  • MVC是ASP.NET技术的子集(ASP.NETMVC)并列ASP.NETWebFrom

1.2本章主要内容

1.3MVC简介

1.3.1MVC是什么

(1)MVC是一种软件架构模式,针对具备人机交互功能的软件和程序
(2)执行顺序如下:

Web开发的本质流程:请求->处理->响应

1.3.2MVC的历史

(1)1973年Trygve教授的两篇论文提出了如下软件设计思想:

1)重写任何系统的能力
2)模块化、可插入的透明子系统的存在
3)每个系统的细分
4)系统的可伸缩性
在此基础之上,演变成了OOP思想

(2)1978年Trygve教授在美国加州,进一步提炼思想,提出了MVC模式

(3)至今,发展成为计算机科学中最受欢迎的应用程序模式之一

(4)MVC的思想诞生的很久远,但是真正兴起是在WEB时代,

Web才是MVC的真正土壤

(5)当下流行的MVC架构

1)RubyonRails(2004年7月24岁的美国人)
2)Python世界的Django
3)Java世界的Spring、Struts和JSF
4)PHP世界的Zend

1.3.3.NET中的MVC

(1).NET在MVC方面一直比较落后
(2)MonoRails一个开源的.NETMVC框架
(3)微软公司的新作-Asp.netMvc(http://www.asp.net/mvc)
(4)优势:
1)汲取MonoRails的精华
2)收编MVC大牛,博众家所长,07年底搞出一个版本
3)集C#语言先进性(lambda、匿名类型和dynamic)
4)生产力更高

1.4第一个ASP.NETMVC程序

1.4.1(现场展示)

(1)步骤
1.创建ASP.NETMVC项目
2.创建Controller控制器
3.创建View视图
(2)引用:

(3)Content文件夹:

(4)Controllers文件夹:

(5)Models文件夹:

注:与三层结构的Models不同,他里可以放实体类、数据访问类和业务类等等
(6)Scripts文件夹:

(7)Views文件夹

(8)Shared文件夹

注:任何控制器找不到的视图都会去找Shared下面的
(9)Web.config

(10)Global.asax

注:应用程序启动时做一些任务

1.4.2代码详解

(1)Global.asax——应用程序启动注册路由
当我对这个网站发出请求时,他是如何把我引到对应的控制器及里面的Action方法?
答:首先网站一启动,会提前加载根据控制器和Action方法设置的路由规则,
这样一请求,路由就会分析之后把你引到对应的控制器和Action方法



(2)控制器

1)根据前面的解析,每次请求都是先定位控制器,然后再根据路由规则找到对应的Action方法!
2)但是在路由表里,我们只写了Home,但是MVC框架约定,控制器都是以Controller结尾,并继承了基类Controller!
3)在这里Index方法返回值类型是ActionResult,方法名和路由注册的方法名一致,在Index方法内,调用了View方法并且返回,这是一个重载的方法,可以给个参数,作为返回视图的名称,如果没有参数,默认就是以当前Action命名的视图。
4)也就是Asp.netMVC架构,不像Java的MVC通过配置来建立关系,他是约定大于配置。

(3)视图

1)视图里的代码类似于之前的ASPX里面的代码,主要是HTML、JS和CSS等前端技术构成,
从MVC1.0到MVC5.0变化很大,razor语法越来越完善,强大!
(4)向视图传递数据
1)传统的方式,前置页面类和后置代码类是继承的关系,可以直接进行数据传递
2)MVC模式下,视图和控制器是完全分离的,通过专用渠道
ViewData,在控制器和视图之间传递数据的容器之一

1.4.3ASP.NETMVC执行顺序

1.5MVC初步应用

1.5.1实现学籍管理系统的登录


(1)特别不建议大家在视图中使用Web服务器端控件
1)优点:事件模型支持,所见即所得!
2)缺点:效率低,Html代码不纯粹!

1.5.2ASP.NETMVC执行过程

1.5.3Model和三层架构

注意:在MVC中如果它不属于View也不属于Controller,那么就把它归到Model中
(1)MVC与三层架构之间有没有区别?
1)MVC和三层架构没有必然的关系,架构的思想是不一样的
2)三层架构强调特理分离(多个项目构成),MVC强调逻辑分离(一个项目构成)
3)MVC中也可以体现三层架构
4)有些MVC企业框架为了方便管理,会故意把Model做分层设计

1.6MVC与ASP.NET

1.6.1ASP.NET与ASP.NETMVC

(1)ASP.NETMVC是ASP.NET技术的子集
(2)它在核心ASP.NET基础之上构建
1.依赖于HttpHandler,如请求是如何进入控制器的
2.依赖于Session、Cookie、Cache、Applaction等状态保持机制
3.使用HttpContext、Request、Response、Server等对象
4.在Controller使用智能感知很容易得到这些对象

(3).NET中编写WEB程序的一种可选方式
1.WebForms技术是另外一种可选方式

1.6.2MVC与WebForms

(1)WebForms的特色

1)所见即所得,开发傻瓜化
1.服务器端控件
2.事件模型
3.状态管理
2)借鉴Winforms的成功特色
3)偏离了Web请求处理的原量

(2)Asp.netMVC的特色

1)关注分离
1.WebForm只是把一个页面分成了前置页面和后置代码,不够彻底
2.MVC可以把一个页分成三块,分得更彻底
2)可测试性
3)开发更接近WEB的本质
4)对开发人员的技术水平要求更高

1.7 总结

使用MVC框架开发网站(一)相关推荐

  1. 基于ASP.NET MVC框架开发Web论坛应用程序

    我想通过本系列文章从头到尾构建一个完整的ASP.NET MVC论坛应用程序,最终的目的是探讨和推动使用ASP.NET MVC框架构建应用程序的最佳实践. 1. 简介 在本篇中,我想先从全局方面介绍一下 ...

  2. 利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列二 附源码)...

    被仿的网站和仿照后的网站 被仿的网站-易读 仿照后的网站-我读 仿这个网站的目的:为了实践一下新学习的轻量级asp.net web开发框架[我记录] ,该网站比较简单,适合入门. 实现章节 章节部分, ...

  3. [导入]ASP.NET MVC框架开发系列课程(3):URL导向.zip(16.66 MB)

    讲座内容: ASP.NET MVC框架中一个关键特性就是基于URL的导向.本次课程将讲解URL Routing机制的使用. 课程讲师: 赵劼 MSDN特邀讲师 赵劼(网名"老赵". ...

  4. [导入]ASP.NET MVC框架开发系列课程(2):一个简单的ASP.NET MVC应用程序.zip(13.70 MB)...

    讲座内容: 使用ASP.NET MVC框架进行开发与ASP.NET WebForms截然不同.本次课程将通过官方的示例程序简单了解一下ASP.NET MVC应用程序的结构与特点. 课程讲师: 赵劼 M ...

  5. [导入]ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述.zip(8.80 MB)

    讲座内容: ASP.NET MVC框架是既ASP.NET WebForms后的又一种开发方式.它提供了一系列优秀特性,使ASP.NET开发人员拥有了另一个选择.本次课程将对MVC模式ASP.NET M ...

  6. linux下symfony框架开发网站总结

    symfony 英文文档: http://symfony.com/legacy/doc/gentle-introduction/1_4/en/04-The-Basics-of-Page-Creatio ...

  7. .net开发网站CMS博客框架

    做一个网站基本步骤一般完整的包括需求分析-ui设计-前端开发-后端开发-测试-运维,一般需求确定了基本就可以,这里主要介绍后台.net网站开发,即拿到前端代码后如何进行.net后台开发,这里以一个博客 ...

  8. VS 如何创建一个MVC框架

    VS 如何创建一个MVC框架 开发工具与关键技术:VS 如何创建一个MVC框架 作者:胡宁淇 撰写时间:2019年1月17日 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务 ...

  9. Spring MVC框架的高级配置

    前言: 本文将为您提供关于Spring MVC框架的配置技巧,以帮助管理基于Spring的web应用程序的多个实例.本配置管理主题常被学术界所忽略,但是,这对于现实的web开发尤为重要.本主题并不直接 ...

最新文章

  1. leetcode算法题--调整数组顺序使奇数位于偶数前面
  2. C语言实现循环链表Circularly Linked List(附完整源码)
  3. java中对map使用entrySet循环
  4. Java线程池有哪些作用
  5. 原来它一直在“装嫩”|“心电图”揭秘富锂巨星真实年龄
  6. javac编译多个java文件以及-cp、-classpath、-sourcepath
  7. matlab bs2rv.m,matlab遗传算法工具箱中的例子不能用?
  8. node ,express框架后台设置跨域操作,路由中间件
  9. 欧拉工程第74题:Digit factorial chains
  10. 10.GitLab 服务器和外部服务集成
  11. mysql数据库+查询+sequence_MySQL数据库InnoDB存储引擎Log漫游
  12. 一键删除PPT页面内的动画or页面的切换效果总结
  13. 计算机网络四级考试及格分数,四级多少分才算过了 多少分及格
  14. 手机端上传照片实现 压缩、拖放、缩放、裁剪、合成拼图等功能
  15. 旗帜软件工作室2021年年会总结
  16. JavaWeb_Servlet_Request_Response
  17. autopilot news
  18. 关闭Chrome的网页自动翻译功能
  19. 【如何系统的学习it技术】
  20. 2022产品展示/品牌宣传/公司介绍PPT模板

热门文章

  1. Python基础知识(二)
  2. 2020年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程
  3. mysqlnbsp;索引(index)
  4. 基于51单片机的自动售货机Proteus仿真
  5. xml文件Unable to resolve table ‘xxx‘解决
  6. TensorFlow技术内幕(一):导论
  7. 小红和小明的数字游戏
  8. linux服务器之间传输数据
  9. Notion:比插座更好玩的智能家居入门产品
  10. 白勇老师的yolox自定义训练数据集