ASP.NET 5與MVC 6中的新特性
雖然人們的目光都專注于 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,這一點對于診斷過程來說很有幫助。