ASP.NET MVC - Cómo usar exactamente los modelos de vista

Digamos que tengo una página que permite editar los detalles de un usuario, así que tengo un ViewModel como este:

public class UserViewModel {
    public string Username { get; set; }
    public string Password { get; set; }
    public int ManagerId { get; set; }
    public string Category { get; set; }
}

Así que en mi acción EditUser puedo hacer que el archivador de modelos pase esto y luego puedo asignarlo al Modelo de dominio:

public ActionResult EditUser(UserViewModel user) {
    ...

Sin embargo, la página que muestra el formulario también necesita detalles como, por ejemplo, una lista de Administradores y Categorías para proporcionar menús desplegables para esos campos. También puede mostrar una lista de otros usuarios en una barra lateral para que pueda alternar entre los diferentes usuarios que está editando.

Entonces tengo otro modelo de vista:

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; }
}

¿Es esta la forma correcta de hacerlo? ¿Son ambos modelos de vista? Si es así, ¿hay alguna convención de nombres que deba usar para poder distinguir entre máquinas virtuales que son como modelos y máquinas virtuales que solo contienen datos para la página?

Tengo todo esto mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta