我只是对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; }
}
OR
public class ArtistViewModel
{
public Artist Artist { get; set; }
public string Whatever { get; set; }
public int Iwant { get; set; }
}
答案 0 :(得分:0)
从域对象中创建单独的视图模型有很多原因
现在我能想到的很少。
=>视图模型是来自域/实体
的数据的表示(信息)=>视图模型用于自定义视图的信息,您可能不允许/想要在此特定视图中显示/编辑实体的所有列。
=>您可能有许多视图模型填充了来自不同视图的同一域对象的数据。
=>您可以通过“查看模型”限制可以编辑/更新的内容。
如果您从真实实体继承ViewModel,黑客可以轻松发布真实实体所有属性的数据,即使您尝试通过View
进行限制我的英语不是很好所以如果你不理解某些事情请告诉我,我会尽力清理它
答案 1 :(得分:0)
View Model的目的是限制我们发送给Web应用程序的数据。因此,我们不是将您所有的Domain类实体过滤到前端所需的属性。
在参考代码时,我看不到通过继承类来处理视图模型的任何差异。只有当它处理来自视图模型的数据时才会出现。
根据个人喜好,我会选择你的最后一个例子,
public class ArtistViewModel
{
public Artist Artist { get; set; }
public string Whatever { get; set; }
public int Iwant { get; set; }
}