前言

说到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. C#应用调试C++ dll的方法

    最近碰到个C#应用闪退的问题,由于通讯部分调用了C++工程写的dll,下面介绍一种调试的方法. 右键 启动项目,分别配置常规和和调试即可,如下图. 常规中,输出目录设置为安装目录中dll对应的目录: ...

  2. http响应chunked格式分析

    有的时候服务器生成HTTP回应是无法确定信息大小的,这时用Content-Length就无法事先写入长度,而需要实时生成消息长度,这时服务器一般采用Chunked编码. 在进行Chunked编码传输时 ...

  3. js 鼠标点击文本框 提示文字消失

    onfocus="if(this.value==defaultValue) {this.value='';}" onblur="if(!value) {value=def ...

  4. 解决free -h cached 过大 问题

    //先同步数据 sync //cache 释放: //To free pagecache: echo 1 > /proc/sys/vm/drop_caches //To free dentrie ...

  5. 页面布局 frameset元素

    frameset.html: <!DOCTYPE html><html lang="en"><head> <meta charset=&q ...

  6. ora-28547:连接服务器失败,可能是 Oracle Net 管理失败

    检查如下: 监听程序的配置文件 发现多了 (PROGRAM = extproc) 去掉后如下: # listener.ora Network Configuration \dbhome_1\netwo ...

  7. java基础之匿名内部类

    内部类: 概述: 类里边还有一个类, 里边那个类叫内部类, 外边那个类叫外部类. 分类: 成员内部类: 定义在成员位置的内部类. 局部内部类: 定义在局部位置的内部类. 格式: new 类名或者接口名 ...

  8. 使用Nuget发布自己的类库包

    NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些V ...

  9. 476. Number Complement 二进制中的相反对应数

    [抄题]: Given a positive integer, output its complement number. The complement strategy is to flip the ...

  10. 【转】浏览器中F5和CTRL F5的行为区别

    原文地址:http://www.cnblogs.com/jiji262/p/3410518.html 前言 在印象中,浏览器中的F5和刷新按钮是一样的效果,都是对当前页面进行刷新:Ctrl-F5的行为 ...