[小菜一碟] 如何在 ASP.NET Core MVC 的 View 中單獨取得含有檔案版本雜湊值的檔案路徑?

在開發網頁程式我們最害怕的場景其中之一,就是我們的靜態檔案(*.js、*.css、*.png、...)後端已經更新了,但是在前端看到的依然是舊的版本,這個問題在 ASP.NET Core 我們可以透過一個 asp-append-version 的 TagHelper 來解決,它會自動地根據靜態檔案的內容產生一個含有雜湊值版本的網址,如果我們不透過 TagHelper 也想取得這樣的網址,我們要怎麼弄?

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core MVC 自訂 HTTP 狀態碼頁面

商業網站通常都會自訂自己的 HTTP 狀態碼頁面,先前有寫兩篇文章介紹在 ASP.NET MVC 如何來做這件事?

現在環境換到了 ASP.NET Core,我們來看一下怎麼處理自訂 HTTP 狀態碼頁面?

...繼續閱讀 »

[小菜一碟] 如何讓 ASP.NET Core MVC 的 Razor View 在開發時期即時編譯?

ASP.NET Core 在發佈的時候,會將 Razor View 採用預先編譯的方式,這一點改變讓 Web 應用程式啟動得更快,但是在開發時期也是這樣就讓我挺不習慣的,原本我以為在開發時期即時編譯 Razor View 的功能,會在 Visual Studio 2019 v16.6 加進來,不過它似乎提早了

...繼續閱讀 »

[食譜好菜] AngularJS 基本術語及生命週期

這篇講的是 AngularJS 1.x,寫文章的當下 AngularJS 2.0 已經 RC5 了,已知 AngularJS 2.0 是不會向下相容 1.x 的。

那我為什麼還要寫 AngularJS 1.x 的文章呢? - 用來幫助我回憶的!

以前花時間閱讀跟學習的技術,隨著時間以及很少用到,記憶會慚慚淡化,趁現在還記得幾分趕快做個筆記,尤其是技術背後本身的概念及限制,這些都會影響到我們掌握一門技術的程度。

...繼續閱讀 »

[小菜一碟] 偽造 ClaimsIdentity 為 Controller Action 做有身份識別的單元測試

我在之前的專案有使用過 ASP.NET Identity 來幫我做驗證的工作,ASP.NET Identity 的出現為驗證身份的方式帶來了更大的彈性,不過如何使用不是這道菜的重點,這道料理要展現的是,當我們為 Controller Action 做有身份識別的單元測試時,我們要如何偽造不同的身份來滿足測試情境?

...繼續閱讀 »

[料理佳餚] ASP.NET MVC 自訂 ModelBinder 將宣告為抽象型別的參數反序列化

如果我們是真的用物件導向在設計程式,那麼一定會用到抽象類的型別(Abstract Class、Interface),在現今當下的資料交換格式中,JSON 算是大家首選的格式,可是當我們的設計相依於抽象之後,序列化及反序列化就變成一個我們必須特別要處理的點,序列化倒是還好,反序列化就比較頭痛了。

...繼續閱讀 »