Como exatamente usar modelos de visualização
Digamos que eu tenha uma página que permita a edição dos detalhes de um usuário, então eu tenho um ViewModel assim:
public class UserViewModel {
public string Username { get; set; }
public string Password { get; set; }
public int ManagerId { get; set; }
public string Category { get; set; }
}
Portanto, na minha ação EditUser, posso fazer com que isso seja passado pelo fichário do modelo e, em seguida, posso mapear isso para o modelo de domínio:
public ActionResult EditUser(UserViewModel user) {
...
No entanto, a página que exibe o formulário também precisa de detalhes, como uma lista de gerentes e categorias, para fornecer listas suspensas para esses campos. Ele também pode exibir uma lista de outros usuários em uma barra lateral para que você possa alternar entre os diferentes usuários que você está editando.
Então eu tenho outro modelo de visão:
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; }
}
Esta é a maneira correta de fazer isso? Ambos são modelos de exibição? Em caso afirmativo, há uma convenção de nomenclatura que eu deveria usar para que eu possa distinguir entre VMs que são como modelos e VMs que contêm apenas dados para a página?
Eu entendi tudo errado?