MVC - 模型 - 视图模型结构

时间:2011-12-28 12:02:05

标签: model-view-controller

快速提问,看看它似乎就是这种情况,但它似乎有点像代码重复,我认为这是浪费时间。

这是我的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

1 个答案:

答案 0 :(得分:1)

ViewModel ,顾名思义,它只是另一种形式的模型的另一种表现形式。这个概念是为您的模型提供不同的渲染视图。这样想,如果你有一个类别模型和一个图片模型,你需要在视图中渲染它们以创建新记录。有两种方法可以解决这个问题:一种方法是将一个模型作为参数传递并在ViewBag字典中保存另一个,另一种方法(首选方式)是将ViewModel视为将两个实体合并为一个视图。

public class CatPicView
{
    public Category Category { get; set; }
    public Picture Picture { get; set; }
}