Для примера понадобятся слудующие сущности EmployeeEntity, JobEntity
public class EmployeeEntity
  {
    public virtual int EmployeeId { get; set;}
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual String JobId { get; set; }
  }
* This source code was highlighted with Source Code Highlighter.public class JobEntity
  {
    public virtual string JobId { get; set; }
    public virtual string JobTitle { get; set; }
  }
* This source code was highlighted with Source Code Highlighter.Что бы удобно передать во View модель данных содержащую как экземпляр Employee так и список Job`ов создаем класс обертку:
public class EmployeeEditViewData
  {
    public EmployeeEntity Employee;
    public IEnumerable<SelectListItem> Jobs;
  }
* This source code was highlighted with Source Code Highlighter.Теперь необходимо создать Action для Employee контроллера
- public ActionResult Edit(int id)
-     {
-       EmployeeEntity employeeEntity = _employeeRepository.EditById(id);
-       IEnumerable<SelectListItem> jobs =
-         Domain
-         .CurrentSession
-         .CreateCriteria<Job>()
-         .List<Job>()
-         .Select(j => new SelectListItem
-                  {
-                    Text = j.JobTitle, 
-                    Value = j.JobId, 
-                    Selected = employeeEntity.JobId == j.JobId
-                  });
-  
-       EmployeeEditViewData viewData = new EmployeeEditViewData
-                         {
-                           Employee = employeeEntity,
-                           Jobs = jobs
-                         };
-       return View("Edit", viewData);
-     }
* This source code was highlighted with Source Code Highlighter.А теперь по порядку:
строка 3 - получение экземляра объекта EmployeeEntity;
строки 4-14 - получение экземляра IEnumerable
строки 16-20 - создаем EmployeeEditViewData и инициализируем поля ранее получеными объектами;
Для данного action необходимо создать строго типизированную view на основе класса EmployeeEditViewData. У меня студийный генератор не смог сгенерить заготовку view для редактирования полей, но ничего не мешает это сделать самому.
Для поля в котором нам понадобится DropDownList пишем следующий код:
    <p>
      <label for="JobId">
        Job:</label>      
      <%= Html.DropDownList("JobId",Model.Jobs) %>      
    </p>
* This source code was highlighted with Source Code Highlighter.В общем то все.
 
1 комментарий:
Всем Привет!
Такой забавный сайт.
Масса приколов...Фен, Анаша, Спайс, Героин, и т.д.
Переходи на сайт:
[b]
http://hudra.zupohabuweku.ga
[/b]
Отправить комментарий