多个粒度视图模型或单个模型 - Asp.NET MVC3

时间:2011-04-20 21:38:43

标签: asp.net-mvc-3 model viewmodel modeling

我正在寻找使用MVC3创建我的第一个ASP.NET MVC应用程序。

我使用的项目模板包括一些用于注册用户,登录和更新忘记密码的模型。

我希望用户可以针对我自己的数据存储(可能使用Entity Framework)和使用Google OAuth进行身份验证。

我认为我想要一个包含一些标准属性的User模型类和一些处理“本地”身份验证和OAuth调用的业务逻辑,但项目模板让我很困惑。

我应该为登录,注册等不同的操作创建多个视图模型,然后使用控制器实例化和调用我的模型来执行业务逻辑,还是应该将我的用户模型用于所有不同的操作? / p>

由于 本

1 个答案:

答案 0 :(得分:4)

  

我应该创建多个   用于不同操作的视图模型   登录,注册等,然后使用   控制器实例化和   调用我的模型来执行   业务逻辑或我应该使用我的用户   所有不同行为的模型?

查看每个视图的模型。这是规则。每个视图甚至可能有2个视图模型(一个用于在GET中呈现数据,一个用于在POST操作中从视图接收数据)。在创建视图模型时不要害羞。你肯定不应该为所有不同的行为使用用户模型,这将是灾难性的。该模型应由您的服务层使用。用户模型将由此图层操纵,并且永远不会传递给视图。

您还可以签出AutoMapper以查看模型类和视图模型之间的映射。这是一个很好的工具,特别是当视图模型的数量开始增加时,它会派上用场。