使用MVC框架开发网站(一)

news/2024/5/20 13:54:42/文章来源:https://blog.csdn.net/bj_xuzhiqiang/article/details/80619012

概述

本章您将学会:
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 总结

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_858945.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用beego开发网站(一)

在这里,我将分享我这段时间学到的关于怎样搭建一个简单的beego项目,分享的东西仅仅是入门级别。 一,安装golang的开发工具和语言的编译工具(如果本步骤不会的话,请去golang中国社区查阅资料进行开发搭建) 我…

使用ThinkPHP框架快速开发网站(多图)

使用ThinkPHP框架快速搭建网站 这一周一直忙于做实验室的网站,基本功能算是完成了。比较有收获的是大概了解了ThinkPHP框架。写一些东西留作纪念吧。如果对于同样是Web方面新手的你有一丝丝帮助,那就更好了挖。 以前用PHP做过一个很蹩脚的网站&#xff0…

node爬虫_爬取斗图啦网站上的表情包

最近在学习node.js,做点不是人的事情:爬取网站上的表情包 实现步骤: 1、分析网站的结构: 斗图啦这个网站是服务器渲染的,直接打开网站就可以获取到完整的html信息。 我们可以看到下面两张图就是我们需要获取的信息 2、使用的插…

良心安利卧室su模型素材网站

前方干货满满,建议先收藏再看哦!为大家整理卧室su模型素材,总有满足你需求的一款,除此之外,免费,资源质量好,一键打包下载,你还不心动吗? 因为小编的工作原因&#xff0…

必备 免费人物虚幻模型素材网站

前方干货满满,建议先收藏再看哦!为大家整理人物虚幻模型素材,总有满足你需求的一款,除此之外,免费,资源质量好,一键打包下载,你还不心动吗? 本人曾经也是废大把时间寻找…

超全机械设备 机器3dm犀牛资源素材网站整理

想必大家都在为找机械设备 机器3dm犀牛资源而头疼吧,今天小编都为大家整理好咯,上资源的机械设备 机器3dm犀牛资源,大家喜欢的可以先行收藏哈,之后会持续更新哒~ 接下来就给大家介绍一下我珍藏已久的网站:爱给网&…

良心安利办公室样机模板素材网站

因为工作的原因,我会经常使用到素材网站,各个平台的模式不太一样,内容也各有特点。刚开始接触素材网站都是一头雾水,走了很多弯路,一些很简单的操作都花去很长的操作时间.....今天给大家安利办公室样机模板素材网站&am…

超全公园sketchup模型素材网站整理

想必大家都在为找公园sketchup模型而头疼吧,今天小编都为大家整理好咯,超多的公园sketchup模型资源,大家喜欢的可以先行收藏哈,之后会持续更新哒~ 接下来就给大家介绍一下我珍藏已久的网站: 爱给网,我的工…

宝藏又小众的飞机cc0高清摄影图片素材网站分享

天天各大网站找飞机cc0高清摄影图片素材?最后空手而归?今天为大家推荐飞机cc0高清摄影图片素材网站,质量上乘适合资源慌缺的你,话不多说准备开始收藏吧! 因为小编的工作原因,经常会使用到飞机cc0高清摄影图…

超全伏特加免抠摄影素材网站整理

因为工作的原因,我会经常使用到素材网站,各个平台的模式不太一样,内容也各有特点。刚开始接触素材网站都是一头雾水,走了很多弯路,一些很简单的操作都花去很长的操作时间.....今天给大家安利伏特加免抠摄影素材网站&am…

实验·搭建nginx网站

实验搭建nginx网站 实验环境 CentOS 7.6 nginx源码包 nginx-1.12.2.tar 实验步骤>开启nginx统计模块并可以正常访问 #创建用户nginx [rootlocalhost opt]# useradd -M -s /sbin/nologin nginx#安装环境 [rootlocalhost opt]# yum -y install gcc gcc-c pcre pcre-dev…

世界各国语言学习网站

世界各国语言学习网站 来自 佳人 卿本佳人发表 收录于昨天 59 分享 转自: 鲜果网 世界各国语言学习资源,没有找不到的,只有想不到的,保证你一辈子也学不完…… 篇幅比较长,是按地域分的,这里先列个地域清…

美国科技博客网站gadgetcrave.com近日评出世界现代史上10大最为重要的技术和产品

美国科技博客网站gadgetcrave.com近日评出世界现代史上10大最为重要的技术和产品,其中电灯、电话、电视、电脑和互联网等技术和产品上榜。gadgetcrave.com网站称,这次评选去掉了那些对于公众而言直观性较低(如晶体管、电力和内燃机等)的技术和产品&#…

JavaScript系列—性能优化之《网站性能优化实战——从12.67s到1.06s的故事》

本篇博文来源于网络 226 人赞同了该文章 原文作者:IMWeb jerryOnlyZRJ 原文链接: 网站性能优化实战--从12.67s到1.06s的故事 - 腾讯Web前端 IMWeb 团队社区 史上最全面、最完整的网站性能监测与优化策略 0.引言 作为互联网项目,最重要的便…

编译ASP.NET网站项目,以及部署网站到本地localhost服务器上实现独立运行

1.准备步骤 操作系统:windows 10 IDE:visual studio 2017 我们创建了一个网站项目后,“解决方案资源管理器”中能看到我们编写好的项目文件 准备好源文件后就可以开始编译工作。 2.发布Web应用,进行编译 右键项目名称,…

Apache+mono实现ASP.NET网站在ubuntu服务器上运行

要求:提前安装好Apache2 安装mono mono是一个用来在linux环境下运行.NET的应用 mono官网安装方法 安装库到ubuntu 16.04上(其余版本参考上方官方说明): sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-…

如何让外网访问自己写的网站

由内网映射到外网 准备材料实现步骤 准备材料 写好的工程应用 ;natapp,获取注册点这里:Here; 实现步骤 注册并实名认证;购买隧道,免费隧道;见图: 复制authtoken;让本…

Python实战项目之模拟浏览器访问京东网站并输入关键字自动搜索

Python实战项目之模拟浏览器访问京东网站并输入关键字自动搜索 1、下载安装PyCharm 下载网址:http://www.jetbrains.com/pycharm/ 2、下载chromedriver 下载网址:http://chromedriver.storage.googleapis.com/index.html 3、在PyCharm环境安装selenium库…

搭建网站的六个基本步骤流程(教程解说)

现今越来越多的企业开始涉足线上经营,因此,企业网站已经成为一个企业的标配,越来越多的企业和个人开始关注网站建设。上篇文章,小编讲了一些建站前的准备,现在我们就来讲讲建站的具体流程。 一、 购买注册域名 域名是…

基于腾讯云服务器安装宝塔面板搭建Typecho博客网站(图文教程)

欢迎您来拜访!大家好这是我自己总结的完整版的腾讯云服务器搭建网站;现如今服务器的最大用途就是搭建网站,许多人认为搭建网站很难,因为它包含了一些专业的东西,和一些细节上的东西需要注意,因此我把自己学…