前言

说到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. Python3 持久化pickle模块

    pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. 1.pickle.dump(obj, file[, protocol]) 序列化对象,并将结果数据流写入到文件对象中.参数 ...

  2. KMP算法详解(转)

    转自http://www.matrix67.com/blog/archives/115 通常我们的方法是枚举从A串的什么位置起开始与B匹配,然后验证是否匹配.假如A串长度为n,B串长度为m,那么这种方 ...

  3. Storm集群详细部署

    1.安装zookeeper 3.1下载zookeeper安装包, 建议下载3.4.5及以上的版本 http://www.apache.org/dyn/closer.cgi/zookeeper/ 3.2 ...

  4. 改变函数中的 this 指向——神奇的call,apply和bind及其应用

    在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这 ...

  5. Stall Reservations(贪心+优先队列)

    Description Oh those picky N (1 <= N <= 50,000) cows! They are so picky that each one will onl ...

  6. 无锁的同步策略——CAS操作详解

    目录 1. 从乐观锁和悲观锁谈起 2. CAS详解 2.1 CAS指令 2.3 Java中的CAS指令 2.4 CAS结合失败重试机制进行并发控制 3. CAS操作的优势和劣势 3.1 CAS相比独占 ...

  7. 在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware

    首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapte ...

  8. Github简单的上传和修改

    先自己手动创建一个仓库 echo "# delet" >> README.md git init git add . git commit -m "first ...

  9. js通过session判断登录与否并确定跳转页面以及回车按钮提交

    本文实例讲述了js判断登录与否并确定跳转页面的方法.分享给大家供大家参考.具体如下: 使用session存储,确定用户是否登录,从而确定页面跳转至哪个页面. 判断本地有无customerID func ...

  10. 在Windows里定时执行一个Python文件

    一.系统环境 操作系统:Win7 64位 二.说明 1.建立一个dos批处理文件 例: @echo off C: cd C:\work\python python aaa.py exit 2.利用Wi ...