客製化 MVC Scaffold


  1. 說明
    1. 專案層級使用步驟
    2. 客製化 Scaffold 內容
  2. T4 Template
    1. 取得 Controller Name
    2. 內容驗證
  3. 參考資料

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 樣板