Для примера понадобятся слудующие сущности 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]
Отправить комментарий