Для каждой сущности в моем хранилище у меня есть модель представления и модель ввода. Я считаю, что наличие модели ввода для хранения реляционных идентификаторов (в отличие от внешних объектов) упрощает рендеринг списков выбора, но какую модель вы передаете в представление «Правка» для рендеринга, Модель представления или Модель ввода
Пример действия POST для Category
объекта:
[HttpPost]
public ActionResult Edit(CategoryInputModel inputModel)
{
// map inputModel to entity and persist
// ...
}
Просмотр модели:
[HttpGet]
public ActionResult Edit(int id)
{
var category = _unitOfWork.CurrentSession.Get<Category>(id);
var viewModel = Mapper.Map<Category, CategoryViewModel>(category);
return View(viewModel);
}
В этом случае форма редактирования представления позаботится о предоставлении правильных полей модели ввода для действия POST.
Модель ввода:
[HttpGet]
public ActionResult Edit(int id)
{
var category = _unitOfWork.CurrentSession.Get<Category>(id);
var inputModel = Mapper.Map<Category, CategoryInputModel>(category);
return View(inputModel);
}
Что легче поддерживать в долгосрочной перспективе?