C# 如何更新aspnet脚手架cshtml页面

C# 如何更新aspnet脚手架cshtml页面,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我使用MVC5控制器与视图,使用实体框架和创建,删除,细节,编辑,索引cshtml页面自动发生。当我更改模型类并更新数据库CSHTML页面时不会改变。我正在手动删除视图页面并使用脚手架重新创建它们。当我做这些事情时,我的HTML设计被删除 如何自动更新aspnet和cshtml页面 注意:我正在使用布局页面,但它们并不能解决我的问题。“当我执行这些操作时,我的html设计将被删除。” 这是问题的根源。如果我理解正确,您是: 使用脚手架生成视图 修改这些视图的CSHTML以自定义视图 您希望在修改

我使用MVC5控制器与视图,使用实体框架和创建,删除,细节,编辑,索引cshtml页面自动发生。当我更改模型类并更新数据库CSHTML页面时不会改变。我正在手动删除视图页面并使用脚手架重新创建它们。当我做这些事情时,我的HTML设计被删除

如何自动更新aspnet和cshtml页面

注意:我正在使用布局页面,但它们并不能解决我的问题。

“当我执行这些操作时,我的html设计将被删除。”

这是问题的根源。如果我理解正确,您是:

  • 使用脚手架生成视图
  • 修改这些视图的CSHTML以自定义视图
  • 您希望在修改数据库后,脚手架将更新视图。但是,当它生成新的CSHTML视图时,它如何知道如何将更改与您的定制相结合?没有它不知道如何生成一个全新的视图并以某种方式集成您的自定义设置。

    这与任何涉及代码生成的场景几乎相同。你必须做出选择。如果要保留编辑,则在编辑后不能再使用支架生成新视图。如果您想在数据库更新后从脚手架中获益,那么您永远不应该为了定制而编辑CSHTML

    很久以前,我使用脚手架只是作为一种学习工具,来了解列表之类的事情是如何处理的。大概有两年时间我从未使用过脚手架,而且对于大型项目来说通常速度较慢,所以我总是创建一个空的CSHTML或复制一个现有的CSHTML,这与我将采用的新方法非常接近

    相反,我将关注其他有助于更轻松地创建CSHTML的技术

    • 适当地使用局部视图来拉出可重用的UI元素
    • 使用自定义对象模板自定义DisplayFor和EditorFor之类的结果。(我个人不这么做,但我看到其他人有效地使用了它)
    • 实现了帮助程序,用于接受参数并生成符合您所遵循模式的HTML。因为我使用引导,所以我创建了自己的
      Html.labelborbootstrap
      helper,例如,它输出格式化的Html,以便与引导类一起使用
    • 有效使用版面页面和版面
    最终你会发现脚手架在很多情况下根本不合适。例如,用于将一个实体与另一个实体关联的UI,当许多列不适合显示时,它会显示所有列,等等

    您可能对动态数据感兴趣。它更倾向于约定,因为它从数据库结构确定UI,但您提供了自定义约定。总的来说,它在概念上与将MVC与自定义对象模板结合使用并没有什么不同:

    动态数据不是主流数据,您从使用动态数据中学到的技能可能不太受欢迎。它可能只适用于用户体验不是主要关注点的管理界面。一旦你学好了MVC,你就可以很快为新的实体提供基本的UI,所以我不推荐使用动态数据

    可以修改默认的脚手架模板。因此,如果您愿意,您可以自定义模板并让它生成您的视图您将很快遇到同样的问题,但是,您将遇到这样一种情况:您的通用模板不满足要求,您需要自定义输出视图CSHTML,但现在您无法再重新生成视图,因此脚手架模板的用处有限: