转发:微软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四大特性的更多相关文章

  1. (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...

  2. 3、带你一步一步学习ASP.NET Core中的配置之Configuration

    如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...

  3. .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序

    今天坐高铁时尝试了一种学习ASP.NET 5的笨方法,从空文件夹开始,根据运行dnx . kestrel命令的错误信息,一步一步写代码,直至将一个最简单的ASP.NET程序运行起来. 尝试的具体步骤如 ...

  4. 一步一步学习SignalR进行实时通信_1_简单介绍

    一步一步学习SignalR进行实时通信\_1_简单介绍 SignalR 一步一步学习SignalR进行实时通信_1_简单介绍 前言 SignalR介绍 支持的平台 相关说明 OWIN 结束语 参考文献 ...

  5. 一步一步学习SignalR进行实时通信_8_案例2

    原文:一步一步学习SignalR进行实时通信_8_案例2 一步一步学习SignalR进行实时通信\_8_案例2 SignalR 一步一步学习SignalR进行实时通信_8_案例2 前言 配置Hub 建 ...

  6. 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序

    原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...

  7. 一步一步学习SignalR进行实时通信_7_非代理

    原文:一步一步学习SignalR进行实时通信_7_非代理 一步一步学习SignalR进行实时通信\_7_非代理 SignalR 一步一步学习SignalR进行实时通信_7_非代理 前言 代理与非代理 ...

  8. ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】

    今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...

  9. 一步一步学习SignalR进行实时通信_5_Hub

    原文:一步一步学习SignalR进行实时通信_5_Hub 一步一步学习SignalR进行实时通信\_5_Hub SignalR 一步一步学习SignalR进行实时通信_5_Hub 前言 Hub命名规则 ...

随机推荐

  1. exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常

    1-问题描述:通过SVN将代码变更提交服务器时,你可能会遇到以下异常:  exception throw in progress runner thread 2-解决办法: SVN代码源代码管理和TF ...

  2. Bootstrap学习笔记系列3-------Bootstrap简单表单显示

    表单布局 垂直或基本表单 基本的表单结构时BootStrap自带的,创建基本表单的步骤如下: 向父<form>元素添加role = "form": 为了获取最佳的间距, ...

  3. 介绍开源的.net通信框架NetworkComms框架 源码分析(十四)StreamTools

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  4. WPS添加页码不是从首页开始

    A.页码从第二页开始 "插入"--"页码"--"格式"--不选"续前页"--"起始页码"设为0 &q ...

  5. Using Stored Programs with MySQLdb

    http://flylib.com/books/en/1.142.1.125/1/ Using Stored Programs with MySQLdb The techniques for call ...

  6. PHP 导出Excel 文档

    下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...

  7. Fiddler (二) Script 用法

      通过前一篇博客 [Fiddler教程], 我们了解了Fiddler的基本用法,  现在我们来看看Fiddler的高级用法. Fiddler Script.   Fiddler中的script 可以 ...

  8. 商业银行在CNAPS体系中对各种交易的处理

    简单来讲,商业银行在CNAPS体系中, 一)行内的交易 由各个银行的行内业务系统来自行解决信息流和资金流问题: 二)跨行的交易分渠道处理 柜台和网银等渠道,商业银行直接直连央行的大小额以及超级网银来解 ...

  9. GJM :用JIRA管理你的项目(三)基于LDAP用户管理 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  10. js的动态加载、缓存、更新以及复用(四)

    本来想一气呵成,把加载的过程都写了,但是卡着呢,所以只好在分成两份了. 1.页面里使用<script>来加载 boot.js . 2.然后在boot.js里面动态加载 bootLoad.j ...