ASP.NET 5 与 MVC 6 中的新特性

  • Jonathan Allen
  • 邵思华

2015 年 7 月 22 日

话题:语言 & 开发

虽然人们的目光都专注于ASP.NET 5与跨平台的执行引擎上,但作为微软推荐的 UI 与 Web Service 框架,MVC 也引入了多项变更。其中最重要的一点莫过于 MVC、Web API 与 Web Pages 三者的统一了。

差点忘了提一句,MVC 6 中默认的渲染引擎 Razor 也将得到更新,以支持 C# 6 中的新语法。而 Razor 中的新特性还不只这一点。

在某些情况下,直接在 Web 页面中嵌入某些 JSON 数据的方式可能比向服务端发起一次额外请求的方法更合适。在之前的版本中,实现这一点需要编写一些繁琐的映射代码,然后用某种 JSON 转换器对数据对象进行序列化,并将结果通过 view model 进行暴露。而在 MVC 6 中,以上所有的样板代码都可以简化为一句“@Json.Serialize(Model)”。

在实现图片缓存时,同样也会遇到大量样板代码的问题。图片的缓存本身很简单,但要找到某种方式通知浏览器让缓存失效,往往要用到许多繁琐的临时方案。而通过使用全新的 Image Tag Helper,只需将 asp-file-version 这一属性设置为 true 就可以了,MVC 将“自动为图片文件名附加上一个用于清除缓存的版本号”。

Tag Helper 框架也得到了一定程度的改进,用户现在可以“将 Tag Helper 中的服务端属性与 Dictionary 的属性进行绑定”。服务端属性的存在与否,将使 Tag Helper 选择性地生效。如果想要了解更多如何编写自定义 Tag Helper 的内容,请参考 Jeff Fritz 的文章“开始使用 ASP.NET MVC Tag Helper”。

路由 token 能够让你在类级别编写类似于“[Route("Products/[action]")”这样的表达式,而在 MVC 6 中,可以在路由名称中使用相同的 token,这一点对于诊断过程来说很有帮助。

查看英文原文:New Features for ASP.NET 5 and MVC 6

语言 & 开发