为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET MVC模型与ViewModel

ASP.NET MVC模型与ViewModel

慕莱坞森 2019-12-16 11:06:13
好的,我一直在听有关MS的ASP.NET MVC的“ ViewModels”讨论。现在,这打算成为一种特定的模型,对吗?不是一种特定的视图。据我了解,这是一种模型,其特定目的是与View进行交互?或类似的东西?一些澄清将不胜感激。
查看完整描述

4 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

本质上,Model和View Model都是具有属性的简单类。


这些类的主要目的是为各自的观众(分别是控制器和视图)描述一个对象(“模型”)。


所以当你说你是完全正确的


据我了解,这是一种模型,其特定目的是与View进行交互


因此,虽然模型类实际上是与您的应用程序交互的域实体,但是视图模型是与视图交互的简单类。


希望能帮助到你 :)


更新:


微软已经在很大程度上基于Model-View-Controller开发了Martin fowler的专用版本的Presentation Pattern,并将其称为PF应用程序的Model-View-ViewModel(MVVM)。此模式针对的是现代UI开发平台,在该平台上,UI开发人员比传统开发人员更多地基于业务逻辑来满足不同的需求。在这里看看一些理论


查看完整回答
反对 回复 2019-12-16
?
12345678_0001

TA贡献1802条经验 获得超5个赞

用最简单的术语来说,我想以下几点:


模型:严格看起来和感觉像您的数据模型。出于所有目的和目的,它仅是数据模型的类表示。它不了解您的视图或视图中的任何元素。也就是说,它不应包含将用于视图的任何属性装饰器(即,Required,Length等)。


视图模型:作为视图和模型之间的数据绑定器,在许多情况下,它也是模型的包装。如果没有View,它将变得无用,因此通常无法像标准Model一样在多个View和Controller之间重用。


例如,您的模型可能具有以下属性,它们是数据源的直接表示:


    public string FirstName { get; set; }

    public string LastName { get; set; }

现在,由于您的视图模型已绑定到视图,因此它可能具有以下属性-将模型的名字字段和姓氏字段作为一个字符串连接在一起:


    [Display(Name = "Customer Name")]                

    public string CustomerFullName { get { return String.Format("{0} {1}", myModel.FirstName, myModel.LastName) }}


查看完整回答
反对 回复 2019-12-16
  • 4 回答
  • 0 关注
  • 636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信