什么是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. C# 编写Window服务基础(一)

    一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...

  2. 从省市区多重级联想到的,react和jquery的差别

    在我们的前端项目里经常会用到级联的select,比如省市区这样.通常这种级联大多是动态的.比如先加载了省,点击省加载市,点击市加载区.然后数据通常ajax返回.如果没有数据则说明到了叶子节点.   针 ...

  3. WebApp

    目前的手机APP有三类:原生APP,WebAPP,HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Hybrid App的兴起是现阶段移动互联网产业的一种偶然.移动互联 ...

  4. python初试牛刀

    需求:在L7的一台机器上做nginx配置,然后代码分发到别的所有的机器上.由于目录中有很多配置文件,而且防止误操作,需要修改配置之前先备份原配置.然后需要在运行修改配置的脚本之前,先弹出界面,告知操作 ...

  5. intellij idea 代码正常,但是编译出现 java:需要";"

    1. 查看idea 的maven 插件是不是版本太低,发现应用里是用的jdk是1.7 maven插件是2.2.1 2. 查看应用编码,比如部分文件是GBK,里面有中文,而整个应用的编码是Utf-8

  6. Windows Server 2008 R2 64bit兼容Chrome浏览器

    近日更换系统Windows Server 2008 R2 64bit系统,发现谷歌浏览器插件无法正常运行,终于找到如下解决方案: 打开桌面谷歌浏览器属性,将target目标 C:\Users\Admi ...

  7. Oracle逻辑体系:数据文件黑盒的内在洞天

    select username,session_num,tablespace from v$sort_usage; Block: 块的组成 Header:包含数据块的概要信息:块地址,块属于哪个段,还 ...

  8. Linux关机命令总结

    在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的. shutdown命令可以安全地关闭或重启Linux系统,它 ...

  9. C#更改控制台文本颜色

    C#更改控制台文本的前景色和背景色   关键字:C# NET 控制台 前景色 背景色地址:http://www.cnblogs.com/txw1958/archive/2012/12/07/cshar ...

  10. WPF中使用MVVM模式进行简单的数据绑定

    计划慢慢整理自己在WPF学习和工作应用中的一些心得和想法,先从一个简单的用法说起 在WPF中,XAML标记语言中绑定数据,而数据源就是指定为ViewModel类,而非界面本身的逻辑代码类 这样一定程度 ...