快速提问,看看它似乎就是这种情况,但它似乎有点像代码重复,我认为这是浪费时间。
这是我的Model层中的一个对象,因此在我的MVC项目之外,将它们分开。
public class MyObject
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}
但是,在我的MVC项目中,我应该作为ViewModel类?
public class MyObjectViewModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}
最终保存完全相同的数据,显然我可以使用某种映射器来映射两者之间的数据,但这看起来不像重复吗?我一定错过了什么!
干杯, d
答案 0 :(得分:1)
ViewModel ,顾名思义,它只是另一种形式的模型的另一种表现形式。这个概念是为您的模型提供不同的渲染视图。这样想,如果你有一个类别模型和一个图片模型,你需要在视图中渲染它们以创建新记录。有两种方法可以解决这个问题:一种方法是将一个模型作为参数传递并在ViewBag字典中保存另一个,另一种方法(首选方式)是将ViewModel视为将两个实体合并为一个视图。
public class CatPicView
{
public Category Category { get; set; }
public Picture Picture { get; set; }
}