Скажем, у меня есть страница, которая позволяет редактировать детали пользователя, поэтому у меня есть 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; }
}
Это правильный способ сделать это? Они оба видят модели? Если да, существует ли соглашение об именах, которое я должен использовать, чтобы я мог различать виртуальные машины, похожие на модели и виртуальные машины, которые содержат только данные для страницы?
У меня все получилось?