C#MVC:返回ViewModel还是模型类?

C#MVC:返回ViewModel还是模型类?,c#,asp.net-mvc,C#,Asp.net Mvc,假设我有一个视图,其中我当前只使用来自“User”类的模型信息 我还是应该创建一个额外的viewmodel包装器,还是直接将用户类实例返回到视图 直接返回的对象: return View(user); return View(new UserViewModel(user)); 包装在ViewModel对象中: return View(user); return View(new UserViewModel(user)); 我在这里寻找最佳实践。也许我需要在以后的视图中返回更多信息,但我还

假设我有一个视图,其中我当前只使用来自“User”类的模型信息

我还是应该创建一个额外的viewmodel包装器,还是直接将用户类实例返回到视图

直接返回的对象:

return View(user);
return View(new UserViewModel(user));
包装在ViewModel对象中:

return View(user);
return View(new UserViewModel(user));
我在这里寻找最佳实践。也许我需要在以后的视图中返回更多信息,但我还不知道。不过,始终使用额外的ViewModel类,这仍然是一个论点吗


谢谢你的帮助

否如果仅使用模型中的信息,则不应使用视图模型。情况很简单。创建强类型视图并直接使用您的模型。

在需要视图模型之前,我倾向于使用域模型。为什么?提前使用域模型更快。然后,当领域模型不再满足我的需要时,我进行重构,在需要的地方添加我需要的东西。我非常喜欢“让它快速工作并大力重构”


这也适用于将模型拆分为多个用户控件。

即使是在可扩展性方面?因为如果我需要的话,在虚拟机中添加另一个字段会容易得多。我不认为在虚拟机中添加新字段比创建虚拟机容易得多。在这两种情况下,您都应该计划您的修改,然后为其创建测试。总的来说,我认为在任何情况下,最简单的解决方案就是最好的解决方案。