Прежде всего, определите ViewModel
public class EditUserViewModel
{
public User User { get; set; }
public IList<License> Licenses { get; set; }
public IList<Service> Services { get; set; }
}
Модель представления - это просто вспомогательный класс, который содержит все, что вам нужно для отображения представления.Затем в вашем действии:
public ActionResult EditUser(int id)
{
var userViewModel = new EditUserViewModel
{
User = // Get user from db
Licenses = // Get licenses for that user
Services = // Getservies the user in entitled to
}
return View(userViewModel);
}
Затем сделайте ваше представление типизированным с помощью EditUserViewModel для модели:
@model EditUserViewModel
@* //Some html or whatever here *@
@* //Access your model properties as follows *@
@Model.User
@Model.Licenses
@Model.Service
Вы можете повторно использовать класс EditUserViewModel для других представлений, UserDetails, дляпример.В этом случае вы можете захотеть переименовать и избавиться от префикса «Редактировать».
ОБНОВЛЕНИЕ, чтобы уточнить вопрос в комментариях: Правило большого пальца: Делайте ваши модели зрения маленькими, тупыми и простыми.Никаких методов, функциональности или интеллекта, просто пара свойств, которые помогут вам в процессе отображения.Вы можете использовать модели представлений только на очень похожих видах, как в случае с представлениями EditUser
и DisplayUser
.У вас будет другая модель вида для DisplayServices
вида и т. Д.