Visual Studio是否有支持ViewModel生成CRUD功能的T4模板?
适配ViewModel的Razor CRUD T4模板说明
目前官方默认的ASP.NET Core脚手架T4模板仅支持直接绑定EF实体/领域模型生成页面,但已经有大量社区实现的同类模板支持ViewModel作为生成输入,完全匹配你的需求:
- 支持直接指定ViewModel类为生成源,生成的Razor页只会包含ViewModel中定义的属性,刚好适配大字段实体仅需部分字段展示/提交的场景
- 内置AutoMapper映射逻辑生成能力,生成的Controller代码会自动包含映射调用代码,你只需要提前配置好实体到ViewModel的映射规则即可,也支持预留手动映射的代码位供自定义调整
- 生成的代码风格和官方默认模板完全一致,不需要额外适配学习,你也可以基于现有官方模板做少量修改快速实现对应能力
如果需要自己修改官方模板,操作也非常简单:
- 从Visual Studio安装目录下找到官方脚手架T4模板,路径参考
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates\MvcView,不同版本的VS路径略有差异 - 复制对应CRUD场景的模板文件到你的项目解决方案的
CodeTemplates目录下 - 修改模板内读取属性的逻辑,从读取实体类属性改为读取传入的ViewModel类属性
- 在Controller生成逻辑中补充AutoMapper注入和映射调用的代码片段即可
实际使用时,只要调整ViewModel的属性配置后重新生成,页面的列表展示、表单字段、提交验证逻辑都会同步更新,完全可以实现你说的快速响应需求变更、避免过发布、减少手写代码拼写错误的目标。
内容的提问来源于stack exchange,提问作者user1489765
相关产品推荐
相关产品推荐

