[小菜一碟] 如何在 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 加進來,不過它似乎提早了

...繼續閱讀 »

[廚餘回收] 關於 ASP.NET MVC 中 OutputCache 的 VaryByParam 屬性有一個不盡善盡美的地方

這天在追查為何 A 客戶的訂單會出貨到 B 客戶哪裡去? 於是我看到了下面這段程式碼:

在 Login 的 Action 上面被加了 OutputCacheAttribute,Duration 屬性被設成 3,其中還用到了 VaryByParam 屬性,我猜寫這段 Code 的工程師應該是想要為每個登入的帳號做 OutputCache,這樣設定沒有問題,問題出在 HTTP Request 的發送內容。

...繼續閱讀 »

[創意料理] 用 ASP.NET MVC 的 Display Mode 讓 View 依使用者角色來拆分以減少邏輯分支

先前有寫過一篇文章 - 將 ASP.NET MVC 的 View 依使用者角色來拆分可以減少邏輯分支,在留言中 demo 哥有提到用 Display Mode 也可以漂亮地解決,於是我就試著把這樣的需求用 Display Mode 來實作,實作之後我必須說,程式碼真的可以少寫一些。

...繼續閱讀 »

[桌邊服務] 將 ASP.NET MVC 的 View 依使用者角色來拆分可以減少邏輯分支

各位朋友應該都有碰過一種需求,就是有一個頁面,這個頁面服務的是廣大的 User,在這群廣大的 User 中有分好幾群,有的群要顯示這個不能顯示那個、有的群要顯示那個不能顯示這個、...,這是很典型的需求,你我的公司裡面應該都存在著這樣的頁面,而且裡面的 if...else... 錯綜複雜,我們冷靜想想,其實這種需求的設計是可以更簡單的。

...繼續閱讀 »