Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NETMVC纯视图模型_C#_Asp.net Mvc - Fatal编程技术网

C# ASP.NETMVC纯视图模型

C# ASP.NETMVC纯视图模型,c#,asp.net-mvc,C#,Asp.net Mvc,我正在学习一门在线MVC课程,讲师正在描述“纯视图模型”的使用。(讲师没有回答问题,所以我在这里提问。他还使用实体框架代码优先的方法。) 他开始讨论的基础是为Add表单设置(手动)默认值,而不是从模型中获取默认值 使用纯ViewModel的意义/好处是什么?这只是一个猜测,但他的意思可能是将ViewModel与业务模型以及数据库实体/对象/模型完全分离 ViewModels可以被描述为纯视图,因为它们有一个目标:使用数据为MVC视图(例如,OrderList.cshtml)服务,并且可能从视图中

我正在学习一门在线MVC课程,讲师正在描述“纯视图模型”的使用。(讲师没有回答问题,所以我在这里提问。他还使用实体框架代码优先的方法。) 他开始讨论的基础是为Add表单设置(手动)默认值,而不是从模型中获取默认值


使用纯ViewModel的意义/好处是什么?

这只是一个猜测,但他的意思可能是将ViewModel与业务模型以及数据库实体/对象/模型完全分离

ViewModels可以被描述为纯视图,因为它们有一个目标:使用数据为MVC视图(例如,
OrderList.cshtml
)服务,并且可能从视图中获取数据,同时与所有其他类型的用于不同目的的模型分离

这种分离有以下好处:

  • 为了在视图中显示不同的数据,只需更改ViewModel(+其初始化方式),而无需更改业务或实体模型
  • 反之亦然:如果业务或实体模型发生更改,只需更改初始化相同良好旧视图模型的映射即可,该映射仍然可以为相同良好旧视图提供数据

视图模型用于将逻辑与视图分离,并使用附加属性和道具进行验证。请阅读下面的文章以获得更多的理解