MVC学习 (二) Razor语法
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语法的更多相关文章
- MVC学习二:基础语法
目录 一:重载方法的调用 二:数据的传递 三:生成控件 四:显示加载视图 五:强类型视图 六:@Response.Write() 和 @Html.Raw()区别 七:视图中字符串的输入 八:模板页 一 ...
- .Net MVC 入门之Razor语法
Razor语法 Razor是以后MVC项目中都需要用的, 所以在学MVC的基础的时候,我们的目标:要了解熟悉Razor页面的语法结构,做到灵活使用,so我们马上开始学习Razor,也请你们多评论和推荐 ...
- ASP.net MVC入门及Razor语法
一.MVC入门: 1.MVC简介 约定大于配置 2.MVC访问流程 csthml模板(razor模板)就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件. 二 ...
- ASP.NET MVC中的Razor语法
1.Razor的基本语法 @* 多行代码时需要包含在大括号内{}和每句代码后都需要加分号; *@ @{ ViewBag.Title = "Index"; ViewBag.Name ...
- MVC系列学习(六)-Razor语法
注:本次代码加了样式,样式如下 <style> div { border: 1px solid red; margin: 10px auto; ...
- QML学习(二)——<QML语法>
一.Qml类型 QML类型分为三类:基本类型.QML对象类型以及JavaScript类型 1 基本类型 我们可以再qt帮助文档中搜索基本类型查看 基本类型的概念是相对于QML对象类型而言的,QML 对 ...
- MVC学习二:Controller和View关系
控制器(Controller)主要是定义方法和加载视图(View) 1.控制器中的Action方法返回值的类型ActionResult,string 2.控制器中Action方法接收浏览器参数方式: ...
- XPath 学习二: 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...
- spring MVC学习(二)---配置相关的东西
1.在上一节中我们提到过每一个DispatcherServlet都会有一个上下文 (WebApplictionContext),并且继承了这些上下文中的bean,其中以一些"特殊" ...
- ASP.NET MVC学习目录
一.ASP.NET MVC原理详解 1.了解MVC架构模式 3.学习ASP.NET MVC的必备语言知识 4.MVC中的razor语法详解 5.ASP.NET MVC路由系统机制详细讲解 6.ASP. ...
随机推荐
- Linux命令之nano -
我使用过的Linux命令之nano - 比vi简单易用的文本编辑器 本文链接:http://codingstandards.iteye.com/blog/802593 (转载请注明出处) 用途说明 ...
- UIButton-初识IOS
今天,我学到了所有app经常用到的UIButton控件,废话不多说,这些都是我学习的时候总结的一些,希望可以帮到以后的初学者,IOS初学不应该直接拖拽,感觉不易于理解,所以我总结的基本上全是纯代码编辑 ...
- Java中的编码格式
Java中的编码 gbk编码 中文占用2个字节,英文占1个字节; utf-8编码 中文占用3个字节.,英文占用1个字节; Java是双字节编码 (utf-16be) utf -16be 中文占2个字节 ...
- CentOs7下systemd管理知识要点
centOs7的一个巨大的变动就是用systemd取代了原来的System V init.systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/system ...
- HTML5-常见的事件- beforeunload事件
当我们在日常访问某些网站时,关闭当前网页时出现如下提示: beforeunload 事件就可以完成这样的事情,该事件发生时机:页面卸载之前,可以通过它来取消卸载并继续使用原有页面. 为了显示上面弹出对 ...
- QQ浏览器不支持JS问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Spring MVC中数据绑定(转)
Spring MVC中数据绑定 比如Product有一个createTime属性,是java.util.Date类型.那么最简单的转型处理是,在SimpleFormController中覆盖initB ...
- CDZSC_2015寒假新人(2)——数学 B
B - B Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- YUI之数组操作
YUI的构建数组,将类数组转换成真正的数组,从而可以使用数组的所有方法 数组构建 //真正的数组返回1,类数组返回2,其余的返回0 YArray.test = function (obj) { v ...
- php的一些小笔记--字符串
字符串: 转换ASCII函数: ord($tring) 返回ASCII,chr($ASCII)返回相应的字符 把字符串切割成数据的函数: chunk_split($string,$len) chunk ...