在MVC视图模型中是错误的吗?

我只需要关于mvc视图模型的一点帮助。 我看到每个人都使用mvc视图模型。 但那样我们正在编写更多的代码。

 public class Artist
    {
        public int ArtistId { get; set; }
        public string NameSurname { get; set; }
        public int Age { get; set; }
    }   

public class ArtistViewModel
    {
        public int ArtistId { get; set; }
        public string NameSurname { get; set; }
        public int Age { get; set; }

        public string Whatever { get; set; }
        public int Iwant { get; set; }
    }

主班的副本。 是工作。 好。 不能我们这样做

public class ArtistViewModel : Artist
    {
        public string Whatever { get; set; }
        public int Iwant { get; set; }
    }

要么

public class ArtistViewModel
    {
        public Artist Artist { get; set; }

        public string Whatever { get; set; }
        public int Iwant { get; set; }
    }

从域对象中创建单独的视图模型有很多原因

这里有几个我现在可以想到的。

=>视图模型是来自域/实体的数据的表示(信息)

=>视图模型是自定义视图的信息,你可能不允许/想要在这个特定的视图中显示/编辑实体的所有列。

=>对于不同的视图,您可能有许多视图模型都充满了来自同一个域对象的数据。

=>您可以限制可以通过View Model进行编辑/更新的内容。

如果您从实体继承ViewModel,即使您试图通过View限制它,黑客也可以轻松发布真实实体所有属性的数据

我的英语不是很好,所以如果你不了解某些事情,请告诉我,我会尽力澄清它


作为View Model的目的是限制我们发送给Web应用程序的数据。 因此,我们不必让所有实体都具有域类,而只是将其过滤到前端所需的属性。

在参考你的代码时,我看不到通过继承类来处理视图模型的任何不同。 只有当它处理来自视图模型的数据时。

按照个人喜好,我会与你的最后一个例子一起去,

public class ArtistViewModel
{
    public Artist Artist { get; set; }    
    public string Whatever { get; set; }
    public int Iwant { get; set; }
}
链接地址: http://www.djcxy.com/p/59765.html

上一篇: Is it wrong in MVC View Model

下一篇: ASP.NET MVC Runtime Compiler Complains About Wrong Model Type when Model is Null