什么是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. vs2008团队资源管理器安装步骤

    1.先装 VS2008TeamExplorer { NOTE: 要区分中英文版本Microsoft Visual Studio 2008 Service Pack 1 (iso) VS2008SP1C ...

  2. JAVA多线程学习--生产者消费者问题

    一.问题描述 生产者消费者问题是一个典型的线程同步问题.生产者生产商品放到容器中,容器有一定的容量(只能顺序放,先放后拿),消费者消费商品,当容器满了后,生产者等待,当容器为空时,消费者等待.当生产者 ...

  3. JDK 动态代理实现原理

    一.引言 Java动态代理机制的出现,使得Java开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象便能动态生成代理类.代理类会负责将所有方法的调用分派到委托对象上反射执行,在分派执行的过 ...

  4. Eclipse导入android包错误

    错误提示:Invalid project description… 解决方案:假设你的工作空间是workshop,那么你可以在你的workshop下新建一个文件夹,然后放入你的包,再在Eclipse中 ...

  5. Microsoft server software support for Microsoft Azure virtual machines

    http://support.microsoft.com/kb/2721672/en-us  Article ID: 2721672 - Last Review: November 22, 2014 ...

  6. MySQL 5.7.9多源复制报错修复

    版本:5.7.9 用5.7.9的版本搭建MySQL多源复制测试环境 开发说复制出现问题,上去看了一下: mysql> show slave status\G******************* ...

  7. uImage、zImage、bzImage、vlinzx区别

    在网络中,不少服务器采用的是Linux系统.为了进一步提高服务器的性能,可能需要根 据特定的硬件及需求重新编译Linux内核.编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要 ...

  8. creating indexing for SQL tunning

    1. Not so long time ago, I got a report from customer. It's reported that they had a report getted v ...

  9. 【经验】Angularjs 中使用 layDate 日期控件

    layDate 控件地址:http://laydate.layui.com/ 前情:原来系统中使用的日期控件是UI bootstrap(地址:https://angular-ui.github.io/ ...

  10. Module模式 - 深入了解Javascript

    /* Modelu模式 优点:效率高,代码少,加载速度快,松耦合允许并行加载,提升下载速度 缺点:初始化时间久一点 */ //一.基础用法 var calculate = function (eq) ...