什么是ASP.NET MVC

1. asp.net mvc 是微软官方提供的mvc模式编写asp.net web应用程序的框架。

2. 是微软既asp.net webForm 后的又一种开放方式,而非替代方式。假如有一个需求只在内网中使用,那么毫无疑问用web form 很快就好开放 出一个非常好的系统,而且不用考虑运行效率的问题。

在MVC模式中,模型(Modul)表示软件处理的数据描述,视图(View)表示软件的交互界面,控制器(Controller)用来控制软件的处理逻辑。MVC将软件的这三个方面明显的进行了划分,以便于复杂软件的组织。而经典的webForm就相当于将控制器和模型合并在一起(在经典的webForm模式中,页面的显示效果通过.aspx模板进行描述,请求的处理逻辑和页面显示所需要的数据在后台代码(.aspx.cs)文件中处理)。

下面就具体说一下这三个模块具体是干嘛的:

1. Modul(模型)是负责保持状态的角色。这个状态在数据库中通常是持久的(所以有时也叫持久层),例如student类用来代表关系数据库中的学生数据。

2. View(视图)是负责显示用户界面的组件。这个界面通常是使用模型数据来创建的,例如,学生的编辑视图,根据当前student对象的状态,显示一个用户的编辑界面。

3. Controller(控制器)是处理用户交互、操作模型和最终选择用哪个视图来显示处理结果的组件。

三个组件之间通过契约进行协作,这使得针对界面层的测试可以方便地进行。

ASP.NET MVC的特点

1.分离任务(前面已经提到过)

2. 可扩展

因为mvc把整个软件分成了三个模块,而并非传统webForm中的三层(传统的webForm三层只是模拟的分成了三层,比如模拟poskback机制,而并不能把.aspx和.aspx.cs两个文件分开)。

3. 强大的URL重写(路由机制)

例如下面两个URL地址:

    3.1 http://www.cnblogs.com/wlitsoft/blogs.aspx?Id=123  (传统的url地址服务器硬盘中肯定存在一个wlitsoft文件夹并且在这个文件夹中肯定存在一个叫blogs.aspx的文件)。

3.2 http://www.cnblogs.com/wlitsoft/blogs/123(这是mvc模式普遍的url地址,此url地址的含义以后的博文将会讲到)

了解过seo的都知道,上面两个url地址哪个更容易被搜索引擎爬虫发现。传统的webForm要重写url的话必须需要组件的支持(URLRewrite)。而mvc对于url的重写是先天性的并且比使用组件灵活的多。

4. 兼容ASP.NET现有的技术(比如master(模板页)......)

5. 开源--这个微软在开源领域最好的项目了,微软开源的项目比如还有个比较出名的CMS项目叫DNN现在出到6.1.x版本了并且6.0以后的版本支持C#,感兴趣的可以学一下。

下面看下ASP.NET MVC3有什么新技术吧!

1. 增加Razor视图引擎;支持多视图引擎。mvc1 2 版本中在view层中充斥着大量的<%...%>和jsp、asp非常类似。阅读性非常差。

    1.1 使用@替代<%%>

         -语法简单清晰、容易学习、VS 2010 提供了智能提示和语法着色......

1.2 全局的Action过滤器

          

1.3 新的ViewBag 属性

1.4 新的ActionResult

        - HttpNotFoundResult -> 404

        - RedirectResult         - > 302\301

        - HttpStatusCodeResult-> 自定义http状态码

1.5 Modul Validation

          自验证、客户端验证(默认启用客户端验证)、远程验证

     JSON绑定支持、HTML5 CSS3 、 部分页面的输出缓存、HtmlHelper的增强 、 NuGet .......

ASP.NET MVC 3 初认知的更多相关文章

  1. asp.net mvc 5 初体验

    参考:http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started 1. 新建 ASP.Net Web 应用程序,跟着向导一路 ...

  2. ASP.NET MVC 初体验

    MVC系列文章终于开始了,前段时间公司项目结束后一直在封装一个html+ashx+js+easyui的权限系统,最近差不多也完成了,迟些时候会分享源码给大家.当然这个MVC系列结束后如果时间允许还会另 ...

  3. AngularJS 初印象------对比 Asp.net MVC

    之前就早耳闻前端MVC的一些框架,微软自家的Knockout.js,google家的AngularJs,还有Backone.但未曾了解,也不解为什么前端也要这么分.这两天看了AngularJs的官方教 ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. ASP.NET MVC Model元数据(二)

    ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...

  6. ASP.NET MVC 5 01 - ASP.NET概述

    本篇目录: ASP.NET 概述 .NET Framework 与 ASP.NET ASP.NET MVC简介 ASP.NET的特色和优势 典型案例 ▁▃▅ ASP.NET概述 ▅▃▁ 目前开发B/S ...

  7. ASP.NET MVC 5 04 - 控制器

    PS: 唉.本来这一篇前几天早就应该发了的,可是谁每月没有那么几天啊... 呵呵.开个玩笑.反正就是各种烦气,所以也就一直没上来继续发了. 年底了,摆正一下心态吧.好好干,整点钱,过年回家能跟亲朋好友 ...

  8. ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

    一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...

  9. ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

    一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新 ...

随机推荐

  1. MongoDB与php的配合使用 【windows版】

    通过学习了如何使用和部署MongoDB,尝试了一下如何将mongodb应用到php的程式中去. 1.预备工作 首先得准备好mongodb,并按照相关方法部署以及服务能正常运行中. 对于初学者,可以参考 ...

  2. JS判断鼠标从什么方向进入一个容器

    偶然将想到的一个如何判断鼠标从哪个方向进入一个容器的问题.首先想到的是给容器的四个边添加几个块,然后看鼠标进入的时候哪个块先监听到鼠标事件.不过这样麻烦太多了.google了一下找到了一个不错的解决方 ...

  3. 关于CSS中的PX值(像素)

    场景: 人物:前端实习生「阿树」与 切图工程师「玉凤」事件:设计师出设计稿,前端实现页面 玉凤:树,设计稿发给你啦,差那么点像素,就叼死你┏(  ̄へ ̄)=☞阿树:~(>_<)~毛问题噶啦~ ...

  4. EditPlus64的安装配置

    下载地址,直接到360下载即可,下载完毕之后,进入如下网址,完后在线生成注册码 http://www.jb51.net/tools/editplus/ 以上是文本编辑器EditPlus的安装以及注册, ...

  5. Java 网络编程(转)

    一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  6. Eclipse中使用javap运行配置详解

    javap是sun提供的对class文件进行反编译的工具 1.配置Run---external tools---external tools configurations 选择Program 新建ja ...

  7. java 接口(基础思想一)

    我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到 ...

  8. c语言编程之循环队列

    利用链表实现的循环队列,完成了队列的入队和出队,对于队空和队满用了一个flag进行标记.入队flag++,出队flag-- #include"stdio.h" typedef in ...

  9. [原创] zabbix学习之旅三:agent安装

    部署完zabbix server后,自然要部署zabbix agent.在官方描述中,agent是部署在被监控的机器上,用于采集CPU.内存.磁盘等统计信息,并上报给server用于进一步处理.age ...

  10. 在Eclipse中使用Propertites Editor插件来解决property文件中文显示乱码

    在一般情况下,propertites文件在eclipse中的显示中文一直显示乱码,想要解决这个问题,需要通过在eclipse中安装一个Propertites Editor插件来进行解决. 在Eclip ...