ASP.NET 5与MVC 6中的新特性
差点忘了提一句,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,这一点对于诊断过程来说很有帮助。