MVC 基础知识
一、 MVC架构
1.MVC模式是一种严格实现应用程序各部分隔离的架构模式。
隔离:分离关注点,松耦合
2.模型(Model)
代表着核心的业务逻辑和数据。模型封装了域实体的属性和行为
3.视图(View)
视图负责转换模型并把它传递给表示层,通常指HTML代码。遵循“分离关注点”的原则,视图只关注于如何展示数据,不应该包括任何业务逻辑。
4.控制器(Controller)
控制器控制程序的逻辑,并且充当着视图和模型层之间协调的角色。控制器从视图层接受用户输入的信息,然后使用模型来执行特定的操作,并把最终的结果回传给视图。
5.路由(Routing)
简单来说,ASP.Net路由只是个模式匹配系统。开始时,应用程序使用路由表注册一种或多种模式,告诉路由系统如何处理这些与模式匹配的请求。路由引擎在运行时接收到请求以后,它就会根据事先注册的URL模式匹配当前请求的URL。当路由引擎在路由表里发现匹配的模式时,它就会把请求转发给特定的处理器来处理请求;如果找不到匹配的任何路由,路由引擎就不知道如何处理这个请求,就会返回404状态错误码。
Http Request→路由引擎(Routing Engine)→控制器<->从Model中查询数据
↓
视图引擎
6.使用操作过滤器,用于处理横切关注点(安全,缓存,日志,错误处理)
7.OData:开放数据协议
URI:/api/Auction?$top=3&$orderby=CurrentBid
二、 MVC与WebForm的异同
1. 共享HTTP处理程序和模块
2. MVC不使用视图状态机制(ViewState)
3. WebForm:视图和逻辑紧密耦合,页面(基于文件的URL),状态管理(视图),WebForm语法,服务器控件,母版页,用户控件。
4. MVC:视图和逻辑分离,控制器(基于路由的URL),无自动化的视图管理,自定义语法(默认为Razor),HTML帮助方法,布局,部分视图。
三、 WebApi
1. OData:开放数据协议
URI:/api/Auction?$top=3&$orderby=CurrentBid
2.异常处理
HttpResponseException
Public class CustomExceptionFilter:ExceptionFilterAttribute
MVC 基础知识的更多相关文章
- Spring MVC基础知识整理➣拦截器和自定义注解
概述 Spring MVC中通过注解来对方法或者类进行动态的说明或者标注,类似于配置标识文件的属性信息.当标注的类或者方式被使用时候,通过提取注解信息来达到对类的动态处理.在 MVC中,我们常用的注解 ...
- Spring MVC基础知识整理➣环境搭建和Hello World
概述 Spring MVC属于SpringFrameWork的产品,采用Model-View-Controller进行数据交互,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...
- MVC基础知识
1.View中获取Control和View: //获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); / ...
- Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库
概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...
- Spring MVC基础知识整理➣国际化和异常处理
概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. ...
- Spring MVC基础知识整理➣数据校验与格式化
概述 将view中Form的数据提交到后台之后,后台如何验证数据的有效性?在这里Spring MVC提供了相应的Hibernate类包(hibernate-validator-4.3.1.Final. ...
- Spring MVC基础知识整理➣View与Controller数据交互
概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controlle ...
- ASP.NET MVC基础知识
1.MVC项目文件夹说明 App_Data:用来保存数据文件,比如XML文件等: App_Start:包含mvc系统启动的相关类: Controller:存放整个项目“控制器”的代码文件: Model ...
- mvc基础知识(1)
复制大佬的,侵权请联系我主动删除 1.js/css合并 在之前的crud例子中,我们引入js/css脚本的方式和平常的web开发一样 <script src="~/Scripts/jq ...
随机推荐
- Web Service无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分
Web Service 无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置.请按名称指示首选的终结点配置部分 原因是在web.co ...
- 开篇 hello 内Cool超人
经过一年时间看到asp.net mvc一直被受微软开发团队的注重.与之相比的silverlight我感觉到有点力不从心.除去silverlight第一次运行要安装Runtime不说,产品不可能只运行在 ...
- ES2015 ——let命令的暂时性死区
ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. 和var不同的还有,let命令不存在变量提升,所以声明前调用变量,都会报错,这就涉及到 ...
- appcan weixin 开发
登录微信开放平台:https://open.weixin.qq.com/ 管理中心,创建移动应用,ps:创建应用需要审核,其中 应用包名 需与在线打包安卓时候的 自定义包名一致. 开放平台 应用申请 ...
- SQL Server 基础:Case两种用法
测试数据 1).等值判断->相当于switch case select S#,C#,C#=( case C# when 1 then '语文' when 2 then '数学' when 3 t ...
- PHP请求页面
< ?php $file_contents = file_get_contents('http://www.ccvita.com/'); echo $file_contents; ?> 有 ...
- Keil(MDK-ARM)使用教程(二)_菜单
Ⅰ.概述 接着上一篇来总结Keil(MDK-ARM)菜单相关的内容,详情请往下看. 关于Keil的下载.安装和新建工程我已将在前面做了详细的总结,不懂的可以参考我博客里面相关的文章.该文章是在新建好工 ...
- String.split()方法你可能不知道的一面
一.问题 java中String的split()是我们经常使用的方法,用来按照特定字符分割字符串,那么我们看以下一段代码: public void splitTest() { String str = ...
- linux安装R语言
系统:centos 6.4 64bit 安装可以使用rpm包安装,也可以用源码安装. 但是rpm安装,各种依赖比较麻烦.所以我采用源码安装. 下载:http://www.r-project.org/ ...
- 开发一个App的成本是多少?
英文出处:savvyapps.欢迎加入翻译小组. 在最近的一个会议上,一个叫Bob的老顾客引用了<App Savvy>(<放飞App:移动产品经理实战指南>)中探讨研发一个io ...