(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性
转发:微软MVP 卢建晖 的文章,希望对大家有帮助。原文:http://blog.csdn.net/kinfey/article/details/44459625
编者语 : 昨晚写好的文章居然csdn不审核,这个也难怪人,但自己比较忙没办法。分享继续,今天谈ASP.NET MVC 6.
我蛮喜欢Ruby On Rails 这种约定胜于配置的框架,在.NET 有ASP.NET MVC 和Java有Play! Framework . ASP.NET MVC 版本基本上每年一更新,从不让你失望。我们现在来看看ASP.NET MVC 6的变化,上一篇已经把基本的配置和改变说了(一步一步学习ASP.NET 5 (三)- 认识新的Web结构),今天看看MVC 6的几个特性。
1. 统一的MVC和WebAPI Controller
在过去版本中,你需要定义WebAPI时必须继承自基于System.Web.Http.ApiController ,而如果是一般的页面Controller就需要继承自 System.Web.MVC.Controller 。而在新的ASP.NET MVC 6中,微软统一了MVC和WebAPI,他们都继承自Microsoft.AspNet.Mvc.Controller。
ASP.NET MVC 6 Controller中,每个Action返回的都是一个IActionResult的接口,它会依据情况去返回页面还是数据。在MVC 6中特别的地方是WebAPI和页面Controller可以使用相同的路由规则。你也可以通过公共方法或者通过属性标签去设定路由规则。
2. Tag Helper (https://github.com/DamianEdwards/TagHelperStarterWeb)
开发ASP.NET MVC你会对那些神奇的Tag helper有深刻印象。下面这段代码很熟悉吧
虽然方便不过大大破坏了html的可读性。新的版本,有了更佳的可读性,更贴近html.
3. View Commpents
这是全新的子视图,取代了原有的SubController。(这个功能个人比较少用),我i的理解是更好地利用好页面部件。他能真正做到局部响应。(大家可以参考这里 : http://www.asp.net/vnext/overview/aspnet-vnext/vc)
4.依赖注入
ASP.NET 5 已经带了依赖注入,你不需要再使用第三方的IoC方式了(话需如此,你也可以通过第三方的方式去完成不过现阶段都很麻烦)。依赖注入基于Microsoft.Framework.DependencyInjection 。你需要在Startup.cs中的ConfigureServices方法中配置。
ASP.NET MVC 6 在原有的基础上改进了功能,优化了前端页面Razor的结构,对于开发和维护更方便快捷。个人就比较喜欢统一了WebAPI 和普通页面Controller,和添加了依赖注入的功能。你呢?
补充一句,由于工作较忙,文章会在周日继续,希望大家会想我
(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性的更多相关文章
- (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目
转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...
- 3、带你一步一步学习ASP.NET Core中的配置之Configuration
如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...
- .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序
今天坐高铁时尝试了一种学习ASP.NET 5的笨方法,从空文件夹开始,根据运行dnx . kestrel命令的错误信息,一步一步写代码,直至将一个最简单的ASP.NET程序运行起来. 尝试的具体步骤如 ...
- 一步一步学习SignalR进行实时通信_1_简单介绍
一步一步学习SignalR进行实时通信\_1_简单介绍 SignalR 一步一步学习SignalR进行实时通信_1_简单介绍 前言 SignalR介绍 支持的平台 相关说明 OWIN 结束语 参考文献 ...
- 一步一步学习SignalR进行实时通信_8_案例2
原文:一步一步学习SignalR进行实时通信_8_案例2 一步一步学习SignalR进行实时通信\_8_案例2 SignalR 一步一步学习SignalR进行实时通信_8_案例2 前言 配置Hub 建 ...
- 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序
原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...
- 一步一步学习SignalR进行实时通信_7_非代理
原文:一步一步学习SignalR进行实时通信_7_非代理 一步一步学习SignalR进行实时通信\_7_非代理 SignalR 一步一步学习SignalR进行实时通信_7_非代理 前言 代理与非代理 ...
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】
今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...
- 一步一步学习SignalR进行实时通信_5_Hub
原文:一步一步学习SignalR进行实时通信_5_Hub 一步一步学习SignalR进行实时通信\_5_Hub SignalR 一步一步学习SignalR进行实时通信_5_Hub 前言 Hub命名规则 ...
随机推荐
- Winform混合式开发框架的特点总结
Winform混合式开发框架,是一种支持分布式部署的应用模式,支持直接连接数据库,访问远程WCF服务,访问远程Web API服务等服务的综合性框架,根据不同的需求采用不同的数据接口,是一个适应性很广的 ...
- ASP.NET 缓存
(一)什么是缓存 缓存是指临时数据或者文件交换区.比方说CPU上的L1或是L2缓存,内存上被划分出来的缓冲区.我们知道CPU的速度是最快的,其次是内存,最后是硬盘,各个部件之间运算速度有很大的差距,但 ...
- Linux移植的一般过程
前一阵子在公司移植Linux2.6到一块ARM11的开发板上,下面粗略讲讲移植Linux的一般过程. 一开始的UBOOT的移植不多说了.UBOOT最后有两种方式进入Linux,一种是使用uImage, ...
- 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用
[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, con ...
- thinkphp端口配置
<?php return array( //'配置项'=>'配置值' 'MODULE_ALLOW_LIST' => array('Home'), 'DEFAULT_MODULE' = ...
- 操作系统与c语言
以下是根据看书后的理解做的总结: 最早,unix是使用汇编编写,但是非常简单.后来觉得汇编,换种机器又得重新用另外一种机器汇编重写,太麻烦.于是想设计一种通用的语言,到各种机器上都能运行 当时 ...
- B树详解
B树 具体讲解之前,有一点,再次强调下:B-树,即为B树.因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解.如人们可能会以为 ...
- Nodejs与ES6系列4:ES6中的类
ES6中的类 4.1.class基本语法 在之前的javascript语法中是不存在class这样的概念,如果要通过构造函数生成一个新对象代码 function Shape(width,height) ...
- 使用<link> 标签定义浏览器标题栏小图标
使用link标签的rel属性,设置成icon.同时设置href属性值为小图标图片的url. <link rel=" icon " href="image/icon. ...
- 【经验之谈】前端面试知识点总结(HTML相关)——附答案
目录 一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 2.HTML5的优点与缺点? 3.Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? 4.HTML5有哪些新 ...