MVC的Model层我理解与三层架构的Molde没有区别,都是作为各个层之间的数据沟通桥梁。但是关于Control和View都有一些与传统webform不同的特性。

这里先学习View里所用到的Razor的语法。

在MVC里为我们提供了两种视图渲染方式,传统的WebForm和新增的Razor。

在Asp.net MVC4.0高级编程书中说,Razor的优点如下。

1)更加简洁富有表现力和灵活性。

2)不是新语言(我一直苦苦寻找Razor的语法规则,直到有人告诉我,直接输入@就可以开始写代码了。)

3)易于学习输入@在些HTML代码即可

4)支持所有文本编辑器

5)智能感知功能

MVC特性:

1.通过验证模型简化数据验证。

2.非入侵式JavaScript,意思就是不在页面直接写JavaScript,通过辅助类Ajax.ActionLink和Ajax.BegionFrom。感觉Webfrom写一个JavaScript标签引用js一样。

3.JSON绑定,这个可能倒让我非常感兴趣,在MVC3.0中加入的JsonValueProviderFactory支持JSON绑定。

4.依赖项解析

涉及到设计模式了依赖侏注入,至今未能理解透彻。依赖注入 来源百度百科

控制器(注册和注入控制器工厂,注入控制器)

视图(注册和注入视图引擎,向视图页面注入依赖关系)

操作过滤器(定位和注入过滤器)

模型绑定器(注册和注入)

模型验证提供器(注册和注入)

模型元数据提供器(注册和注入)

值提供器(注册和注入)

5.全局操作过滤器

 过滤器类型

接口

描述

Authorization

IAuthorizationFilter

此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法

Exception

IExceptionFilter

用于指定一个行为,这个被指定的行为处理某个行为方法或某个控制器里面抛出的异常

Action

IActionFilter

用于进入行为之前或之后的处理

Result

IResultFilter

用于返回结果的之前或之后的处理

Asp.Net MVC2.0操作的过滤器可以提供一段执行代码的钩子,使得该段代码可以在一个操作方法执行之前或之后运行,这个功能可以通过自定义特性实现,自定义的特性可以应用于控制器的一些操作或者整个控制器。

Asp.Net MVC3.0扩展了该功能这对于处理应用程序基础结构问题,像错误处理和日志记录尤其有用。

我将这个理解为webform里面生命周期中的事件,pageload init 等。

6.MVC4.0新增特性

1) Asp.Net Web API 类似与WCF服务

2)增强了默认项目模版

3)添加了使用 Jquery Mobile的手机项目模版

4)支持显示模式(Display Models)

5)支持异步控制器的任务

6)捆绑和微小(minification)

设计Asp.Net MVC的目的就是来创建网站,因此,整个平台的目的就是响应浏览器请求并返回HTML。

Web API来源与MVC,下面是一些它的特性,仅适用于HTTP服务域:

1)路由

2)模型绑定和验证

3)过滤器

4)基架

5)简易的单元测试

6)HTTP编程模型

7)基于HTTP动词的动作调度

8)内容协商

9)基于代码的配置

在面对Web API和WCF时,应该是按需求来做,毕竟WCF更加全面能做的更多,但也更加复杂。

MVC学习 (二) Razor语法的更多相关文章

  1. MVC学习二:基础语法

    目录 一:重载方法的调用 二:数据的传递 三:生成控件 四:显示加载视图 五:强类型视图 六:@Response.Write() 和 @Html.Raw()区别 七:视图中字符串的输入 八:模板页 一 ...

  2. .Net MVC 入门之Razor语法

    Razor语法 Razor是以后MVC项目中都需要用的, 所以在学MVC的基础的时候,我们的目标:要了解熟悉Razor页面的语法结构,做到灵活使用,so我们马上开始学习Razor,也请你们多评论和推荐 ...

  3. ASP.net MVC入门及Razor语法

    一.MVC入门: 1.MVC简介 约定大于配置 2.MVC访问流程 csthml模板(razor模板)就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件. 二 ...

  4. ASP.NET MVC中的Razor语法

    1.Razor的基本语法 @* 多行代码时需要包含在大括号内{}和每句代码后都需要加分号; *@ @{ ViewBag.Title = "Index"; ViewBag.Name ...

  5. MVC系列学习(六)-Razor语法

    注:本次代码加了样式,样式如下 <style>     div {         border: 1px solid red;         margin: 10px auto;    ...

  6. QML学习(二)——<QML语法>

    一.Qml类型 QML类型分为三类:基本类型.QML对象类型以及JavaScript类型 1 基本类型 我们可以再qt帮助文档中搜索基本类型查看 基本类型的概念是相对于QML对象类型而言的,QML 对 ...

  7. MVC学习二:Controller和View关系

    控制器(Controller)主要是定义方法和加载视图(View) 1.控制器中的Action方法返回值的类型ActionResult,string 2.控制器中Action方法接收浏览器参数方式: ...

  8. XPath 学习二: 语法

    XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...

  9. spring MVC学习(二)---配置相关的东西

    1.在上一节中我们提到过每一个DispatcherServlet都会有一个上下文 (WebApplictionContext),并且继承了这些上下文中的bean,其中以一些"特殊" ...

  10. ASP.NET MVC学习目录

    一.ASP.NET MVC原理详解 1.了解MVC架构模式 3.学习ASP.NET MVC的必备语言知识 4.MVC中的razor语法详解 5.ASP.NET MVC路由系统机制详细讲解 6.ASP. ...

随机推荐

  1. Codeforces 466 E. Information Graph

    并查集.... E. Information Graph time limit per test 1 second memory limit per test 512 megabytes input ...

  2. container宽度

    bootstrap:宽度太宽时无需改变container的宽度大小,只需:.row{margin-left: 30px;margin-right: 30px;}

  3. Java访问kafka的时候java.nio.channels.ClosedChannelException解决办法

    import java.util.Properties; import kafka.javaapi.producer.Producer; import kafka.producer.KeyedMess ...

  4. 返回某个界面——nav

     NSInteger index=[[self.navigationController viewControllers]indexOfObject:self];  [self.navigationC ...

  5. UVa1592 数据库(摘)

    输入一个n行m列的数据库(1<=n<=10000,1<=m<=10),是否存在两个不同行r1,r2和两个不同列c1,c2,使得这两行和这两行相同(即(r1,c1)和(r2,c1 ...

  6. 一台nginx服务器多域名配置 (转)

    Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧: s ...

  7. pymssql文档

    原文地址 http://pymssql.org/en/latest/ref/_mssql.html _mssql module reference pymssql模块类,方法和属性的完整文档. Com ...

  8. js戳和php戳时间换算

    问题:剩余多少时间,如果只用php来输出,却看不到动态效果.解决办法,利用获取的时间减去当前时间js 时间格式转换php时间商品距离秒杀时间的天数时分秒<input name="tes ...

  9. Linux vps无法发送邮件

    首先安装sendmail软件...yum install sendmail /etc/init.d/php-fpm restart 来检查下sendmail是否正常运行 /etc/init.d/sen ...

  10. TF卡座(外焊、内焊、掀盖式、全塑、简易)

    TF卡座(外焊.内焊.掀盖 式.全塑.简易