demoshop

demo, trying to be the best_

相信很多人是直接跳這裡看結論的,但我真的希望你結論看完以後回頭看看其他兩篇的文字與範例程式碼,你應該更可以感受到 Razor Pages 的優良之處,我現在一個專案開始的時候我會優先選擇使用  Razor Pages , 除非我在初期就明確的知道這個專案在 MVC 會比較好寫,這兩者也不應該是堅持一種,應該看專案的不同與專案成員的能力來選擇,只會一種你就沒得選,會兩種你的機會就大,我們有在開設 Razor Pages 的課程,歡迎你來加大自己的版圖,讓你也有[選]的能力。

精準解析 RazorPages
https://skilltr.ee/razorpage            

以前 MVC 框架有人反應拆太細了,大多數專案其實不需要那麼龐大的架構,現在有了更聚焦更輕量化的 Razor Pages,或許對於我們是一個不錯的解法。

情境解說

在資料庫中的資料表欄位會依據資料面來設計,但往往會與「顯示」「新增」「編輯」時所需的欄位不同,可能有多也可能有少,得過且過的開發人員會一股腦的都用 DB Model 來傳遞資料,但這是一種浪費也可能造成資安問題,依據我們開發 MVC 的習慣會建立稱為 View Model 的傳遞物件,本篇文章就來示範此情境在 ASP.NET MVC 與 Razor Pages 我們會怎麼做。

為了讓範例可以達到不用解釋的目的,我們將以會員註冊這大家都寫過的東西來做範例。

從 .NET Framework 時代的 ASP.NET MVC 就有內建防範 CSRF 的機制,這機制在 MVC 架構下開發者可自由的選擇啟用或關閉,但是 .NET Core 發行時新推出的 RazorPage 則是預設開啟了 CSRF 防範機制,現在的網路環境越來越危險了預設開啟是非常正確的選擇,但是這樣的預設啟用對於初級的開發者來說就會很挫折,為什麼一個 AJAX 都寫不好呢。

雖然說官方文件都有,但開發人員不看文件的比例和不寫文件差不多,所以我還是寫一篇來記錄一下吧