前言

说到MVC,就得先说说框架是什么东西,MVC好多人都知道,是Model、view、controller,但是MVC到底是什么样的一个框架呢,好多人又说了是约定大于配置。下面我来说说我的理解。

内容

MVC首先是有视图和控制器和数据持久化层组成的,类似于三层框架。视图层提供了表现的界面层,model层提供了业务处理和数据操作代码。Controller层则是根据前天视图页的请求,传送给视图页的相应的数据返回,在这里可以理解为协调作用,没有什么特殊性。在后期人们在基于MVC框架下开发时,考虑到团队开发,于是将controller层独立到一个类库中,最终就是视图部分和controller分开开发,这个时候,只要注意:视图和相应的controller名称一样就可以了,然后对于类库中建立的controller需要注意:a存在的类不能为静态类修饰符必须为public;b类名必须为controller结尾;c类库实现基层的controller基类;其他地方按照平时来用就可以了。

关于约定大于配置,这个怎么理解呢?其实没什么,以前的框架,是在配置文件里面进行配置好的, 而MVC这个框架,而是采用,只要类名跟着controller的,而且修饰符为public,继承controller基类,都为控制器,并且规定控制器会产生一个与之同名的在views下面的文件夹。控制器的action方法,在添加视图的时候,在视图文件夹下生成一个同名的视图。

再说说为什么要用MVC,或者说MVC与其他asp.netWebForm开发有什么优势。

普通的webform形式:

用户通过浏览器发送请求报文,然后通过微软提供的IIS服务器组件,到FrameWork,然后在里面通过process
request方法创建起始页类的页面对象,然后在page_load方法里面根据请求的数据报文,进行业务逻辑处理,然后通过process response返回到页面相应的内容。

MVC模式:

用户通过浏览器发送请求报文,通过微软提供的IIS服务器组件,到FrameWork,然后根据路由配置,解析URL,创建解析后的对象,并调用对象的index方法,然后通过该action,调用model的业务逻辑和数据处理,最后return一个view或者重定向到其他view,或者根据其他需求进行相应的返回。

从上面的对比来看,MVC模式将界面显示与数据内容表达分离开来,在很大程度上减少了系统之间的耦合性。WebForm形式,在接受请求后,还要对请求进行实时的业务分析,不能输出整个前台界面。导致整体性效果差。

小结

MVC模式提供了很多便利性的操作,让我们的操作整体性更加强,减少了牵一发而动全身这种尴尬。下面分别说一下,MVC的路由机制、自带验证机制、通过一些demo,表现MVC怎么实现httpget和httppost操作的,还有MVC中的htmlhelper用法,相信这些就可以很好的帮助你在渲染很强的界面中更好的实现业务操作。

感谢您的宝贵时间···

MVC进阶篇(一)——概览的更多相关文章

  1. Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径

    Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径 我们要实现 通过路由 匹配出 博客地址 和博客文章地址 例如下面的这两个地址 //http://www.cnblogs.com/ma ...

  2. MVC进阶篇(四)——[HttpGet]和[HttpPost]

    前言 Get和post,一个获取请求,一个提交请求,在MVC里面用法也很特别,总结一下,我理解的不是特别深刻,希望多多交流. 内容 [HttpGet] 需求: 用户想要通过点击修改按钮来达到修改这部分 ...

  3. MVC进阶篇(三)——model层数据验证

    前言 常常在想,姓名性别那些个验证,真的有必要每次遇到,每次写验证吗?好麻烦,于是学到MVC这里,发现MVC自带数据验证,这个东西着实是个好东西.我写了一个小demo,分享给大家. 内容 一个表单的提 ...

  4. MVC进阶篇(二)—路由机制

    前言 这个东西好像,一般也不经常动,都用默认的即可.由于MVC模式在framework里面的解析机制,区别与webform模式,是采用解析路由机制的url.从来实例化视图列对象,然后对该action进 ...

  5. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

    http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC ...

  6. [转载]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

    引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将 ...

  7. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase

    原文地址:http://www.51csharp.com/MVC/882.html   ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL 引言-- 在初级篇中,我们 ...

  8. [转]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

    本文转自:http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NE ...

  9. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

随机推荐

  1. gevent实现套接字

    server------------- #!/usr/bin/env python # encoding: utf-8  # Date: 2018/6/17 from gevent import mo ...

  2. ansible命令使用

    ansible命令使用 查看每个服务器的主机名 1 $ ansible multi -a "hostname" 使用一个线程执行命令,相当于顺序在每个服务器上运行(默认5个线程执行 ...

  3. Windows nvidia显卡的设置方法

    1.直接右下角打开N卡控制面板托盘按钮,一般来说都是自动隐藏在小箭头里的,点开就可以显示隐藏的图标了.[插入图片“右下角小箭头”]2.开始菜单 - 控制面板 ,可以看到“显卡控制面板”这个选项,进去就 ...

  4. VMware虚拟机安装Centos7详细步骤过程(图文)[转载]

    Centos7官网下载地址:https://www.centos.org/download/ 图文安装步骤转载地址: https://www.jianshu.com/p/ce08cdbc4ddb?ut ...

  5. Ubuntu下编写C语言程序

    新建C文件,新建一个文件用touch,新建文件夹用mkdir. 打开文本编辑器,编辑C文件,命令用gedit xxx.C 编写C程序,Ctrl+S保存 编译运行 1.gcc命令是编译 -o是可选项 是 ...

  6. thread.Join(); 让主线程等待自己完成

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. js的简单介绍及基本用法

    1. JS的简介 概述: JavaScript, 是一门弱类型语言, 用来给页面增加动态功能的. //弱类型语言: 对数据的数据类型划分不精细(不明确). 特点: A. JavaScript 是一种轻 ...

  8. CentOS7 启动docker.service失败(code=exited, status=1/FAILURE)

    启动报错 Job for docker.service failed because the control process exited with error code. See "sys ...

  9. Linux 安装lamp

    安装软件包编译器 gcc -v 查看是否存在 yum -y install gcc gcc-c++ mack rpm -q httpd 查看是否安装http rpm -e httpd --nodeps ...

  10. Unity ios、android、pc一键打包(一)

    http://www.cnblogs.com/miaoshujiang/p/5289223.html http://blog.csdn.net/ynnmnm/article/details/36774 ...