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 ...
随机推荐
- 常见的HTTP错误总结
一般来说HTTP2XX,代表请求正常完成,HTTP3XX代表网站重定向,HTTP4XX,代表客户端出现错误,HTTP5XX,代服务器端出现了错误 HTTP301:请求的数据具有新的位置 HTTP302 ...
- echo -n -e参数详解
echo -n 不换行输出 最终输出 123456 而不是 123 456 echo -e 处理特殊字符 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出 ...
- [笔记]--Oracle修改SGA大小
1.通过spfile修改 (1)使用SYS用户以SYSDBA身份登录系统 (2)查看修改前sga_max_size,sga_target大小 show parameter sga_max_size; ...
- 算法系列8《Base64》
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单 ...
- android 连续点击退出程序
package com.test.twiceexit; import java.util.Timer; import android.app.Activity;import android.os.Bu ...
- hdu 3172 Virtual Friends
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3172 并查集的运用... #include<algorithm> #include< ...
- Android JNI如何调用第三方库
http://www.2cto.com/kf/201504/388764.html Android JNI找不到第三方库的解决方案 cannot load library 最近做一个jni项目,拿到的 ...
- OpenStack:安装Keystone
>安装Keystone1. 安装# apt-get install keystone2. 创建dbcreate database keystone;grant all privileges on ...
- MEF(Managed Extensibility Framework) 微软平台插件化开发
体验Managed Extensibility Framework精妙的设计 MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要 ...
- 无法产生coredump的问题
我写了一个必然会崩溃的程序,名字为 test :#include "stdlib.h"#include "unistd.h" int main(){ char ...