Я бы использовал модель представления.Я научился не выставлять мои доменные объекты для представления, я скорее сопоставляю свой доменный объект с моделью представления и возвращаю эту модель представления к представлению.
Вот модель частичного представления, у вас может быть больше свойствесли вам нужно больше данных о сотрудниках для создания / редактирования или отображения:
public class EmployeeViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
В моем методе действия моего контроллера это будет выглядеть примерно так:
public ActionResult Edit(int id)
{
Employee employee = employeeRepository.GetById(id);
// Mapping can be done here by using something like Auto Mapper, but I am
// manually mapping it here for display purposes
EmployeeViewModel viewModel = new EmployeeViewModel();
viewModel.FirstName = employee.FirstName;
viewModel.LastName = employee.LastName;
return View(viewModel);
}
И тогда ваше представление можетвыглядит примерно так:
<td>First Name:</td>
<td>@Html.TextBoxFor(x => x.FirstName, new { maxlength = "15" })
@Html.ValidationMessageFor(x => x.FirstName)
</td>
Я предпочитаю иметь модель представления, которая имеет только те значения сотрудника, которые необходимы для представления.Допустим, у вашего сотрудника 20 свойств, и вам нужно только обновить 2 поля, зачем тогда передавать все 20 в представление? Используйте только то, что вам нужно.