User12351259599491 Asked:2022-05-16 13:59:53 +0000 UTC2022-05-16 13:59:53 +0000 UTC 2022-05-16 13:59:53 +0000 UTC 在 ASP MVC 中何时使用 Model 以及何时使用 ViewModel? 772 主题。 例如,我有一个 User 模型,在视图中我需要显示有关用户的信息,而这个模型对我来说已经足够了。 但是创建一个 UserViewModel 并使用它是否正确? c# 1 个回答 Voted Best Answer Aziz Umarov 2022-05-16T15:25:10Z2022-05-16T15:25:10Z ViewModel 是为 View 创建的。如果您有一个 UpdateUserView 视图,那么为它创建一个 UpdateUserViewModel 是合乎逻辑的,如果 UserInfoView 然后是 UserInfoViewModel,并且 Model 是数据库的 DTO(数据传输对象),正如我为您所理解的那样。UpdateUserViewModel 通常不必与 UserInfoViewModel 匹配,因为 Update 视图可能还需要列表(国家、性别、..)并且在 UserInfoViewModel 中根本不需要。这给您理解 MVC 带来了问题。一个 ViewModel 可以由多个 DTO 组成,并包含特定 View 所需的字段。这一切都由控制器控制。 更新。当然,有时希望将 User 用作 ViewModel 而不是使用特定的。但是随后添加或更改用户将需要注意以纯形式使用用户的地方,这可能会在未来引起问题。例如,添加登录密码字段可能会无意中暴露私人数据。
ViewModel 是为 View 创建的。如果您有一个 UpdateUserView 视图,那么为它创建一个 UpdateUserViewModel 是合乎逻辑的,如果 UserInfoView 然后是 UserInfoViewModel,并且 Model 是数据库的 DTO(数据传输对象),正如我为您所理解的那样。UpdateUserViewModel 通常不必与 UserInfoViewModel 匹配,因为 Update 视图可能还需要列表(国家、性别、..)并且在 UserInfoViewModel 中根本不需要。这给您理解 MVC 带来了问题。一个 ViewModel 可以由多个 DTO 组成,并包含特定 View 所需的字段。这一切都由控制器控制。
更新。当然,有时希望将 User 用作 ViewModel 而不是使用特定的。但是随后添加或更改用户将需要注意以纯形式使用用户的地方,这可能会在未来引起问题。例如,添加登录密码字段可能会无意中暴露私人数据。