一開始學習dotnet的web項目是Asp.net webform,完全不理解項目為什麼要這樣設計,就簡單的使用ajax調用後臺的代碼不好嗎?為什麼還要搞一些什麼代碼後置的東東。 還有就是有各種載入問題,比如一個頁面在後臺文件中繼承了PageBase,你總得要為這個載入順序忙上一段時間,好煩。 As ...
一開始學習dotnet的web項目是Asp.net webform,完全不理解項目為什麼要這樣設計,就簡單的使用ajax調用後臺的代碼不好嗎?為什麼還要搞一些什麼代碼後置的東東。
還有就是有各種載入問題,比如一個頁面在後臺文件中繼承了PageBase,你總得要為這個載入順序忙上一段時間,好煩。
Asp.net mvc
幸虧在我開發的項目中沒怎麼用Asp.net webform不然我肯定會瘋掉的,用的而是Asp.net mvc。mvc模式用起來簡直太爽了,Controllers文件夾下放著所有控制器,在View文件夾下有對應控制器的頁面。
雖然用著很爽,但是偶爾還是會碰到有的項目在HTML里會有一些看上去是後臺代碼的東西。
一般對待這種情況,如果項目里的代碼能看懂的話就用項目里的代碼,反之就把該功能重新實現一下。
偶爾用到但是卻不知道這是什麼鬼,所以決定學習一下。
Razor
原來在cshtml文件中的那些帶@符的後臺代碼叫Razor。好像主要目的就是為了簡化前端代碼。
之前看過一篇文章,說的是如果一個web網站只有簡單的幾個頁面的話創建一個Asp.net mvc項目就有點小題大做了,倒不如創建一個Razor項目。
確實,一個簡單的web網站創建好多個控制器與之對應是有點麻煩。所以我打開了巨硬(微軟)的doc,原來用dotnet cli的dotnet new razor命令就可以輕鬆創建一個razor項目。
Razor結構圖
Pages文件夾
創建完了之後和mvc項目基本一樣,只不過沒有了controllers文件夾,但是和webform有點類似的是在pages文件夾下可以創建對應cshtml的cs文件。這樣就可以把後臺代碼寫到對應的cs文件中了。
Razor 語法的組成部分
- 隱式Razor表達式
- 顯示Razor表達式
- 表達式編碼
- Razor代碼塊
- 控制結構
- 指令
- 標記幫助程式
- Razor保留關鍵字
- 查看為視圖生成的Razor C#類
- 視圖查找和區分大小寫
以上內容在微軟doc有詳細講解 傳送門