客製化 MVC Scaffold

2020-08-02

Do Not Repeat Yourself. 使用 Scaffold 已經十分便利,如果可以客製成專案專屬的方式,則更為如虎添翼。

logo

說明

預設 Visual Studio Scaffold Template 資料夾路徑 :

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView

直接覆寫這個資料夾中的 tt 檔案,可以令全域層級的調整設定,令未來所有專案有使用 Sacaffold 的情境時,自動使用客製後的版本。

專案層級使用步驟

專案層級的好處是針對個別專案設定各自的 Sacaffold,且 Sacaffold 的設定也可以隨同專案被保存,較全域更具有彈性。

  1. CodeTemplates 加入專案目錄

  2. CodeTemplates 目錄下分別加入 MvcControllerWithCoNtextMvcView 資料夾

  3. 將 Visual Studio 資料夾下的 Templates 分別複製到上一步驟建立的資料夾

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView

  1. 藉由覆寫 CodeTemplates 下的 tt 檔案 或新增 tt 檔案

  2. 新增檢視時可以看到新的 Scaffold

客製化 Scaffold 內容

  1. 中文化
  2. 取消按鈕調整
  3. 增加預設的 css attrbitues (table-border)

T4 Template

取得 Controller Name

<#= ViewDataTypeName.Split('.').Last().ToString() #>

內容驗證

藉由加入一個全新的 Controller With Mode 所產生的 View 就會帶有 CodeTemplates 中的指定內容,如果已經存在 Controller 則只要再加入 View 即可。

如果沒有效果,嘗試重新 Build 專案後再試試看。

參考資料

覆寫預設 Scaffold 樣板