假设我有一个页面允许编辑用户的详细信息,所以我有一个像这样的ViewModel:
public class UserViewModel {
public string Username { get; set; }
public string Password { get; set; }
public int ManagerId { get; set; }
public string Category { get; set; }
}
因此,在我的EditUser操作中,我可以通过模型绑定器将此传递回来,然后我可以将其映射到域模型:
public ActionResult EditUser(UserViewModel user) {
...
然而,显示表单的页面还需要详细信息,例如管理员和类别列表,以为这些字段提供下拉框。它可能还会在侧边栏中显示其他用户列表,以便您可以在不同用户之间切换编辑。
因此,我又有了另一个视图模型:
public class ViewUserViewModel {
public UserViewModel EditingUser { get; set; }
public IEnumerable<SelectListItem> Managers { get; set; }
public IEnumerable<SelectListItem> Categories { get; set; }
public IEnumerable<SelectListItem> AllUsers { get; set; }
}
这样做是正确的吗?它们都是视图模型吗?如果是,我应该使用什么命名约定来区分类似于模型的VM和仅包含页面数据的VM?
我理解错了吗?