Модель актива представляет у нас кабинет, связанный с определенным отделом. Итак, добавим в контроллер ServiceController следующие методы:
[HttpGet] public ActionResult Activ() { ViewBag.Activs = db.Activs.Include(s => s.Department); ViewBag.Departments = new SelectList(db.Departments, "Id", "Name"); return View(); } //Добавляем актив [HttpPost] public ActionResult Activ(Activ activ) { if (ModelState.IsValid) { db.Activs.Add(activ); db.SaveChanges(); } ViewBag.Activs = db.Activs.Include(s => s.Department); ViewBag.Departments = new SelectList(db.Departments, "Id", "Name"); return View(activ); } // Удаление актива по id public ActionResult DeleteActiv(int id) { Activ activ = db.Activs.Find(id); db.Activs.Remove(activ); db.SaveChanges(); return RedirectToAction("Activ"); }
Общая логика работы похожа на ту, что мы сделали для отделов. И для действия Activ добавим представление Activ.cshtml:
@model Activ @using HelpDeskTrain.Models <h2>Справочник Активы</h2> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Новый актив</legend> <div class="editor-label"> @Html.LabelFor(model => model.CabNumber) </div> <div class="editor-field"> @Html.EditorFor(model => model.CabNumber) @Html.ValidationMessageFor(model => model.CabNumber) </div> <div class="editor-label"> @Html.LabelFor(model=>model.DepartmentId) </div> <div class="editor-field"> @Html.DropDownListFor(model=>model.DepartmentId, ViewBag.Departments as SelectList) @Html.ValidationMessageFor(model=>model.DepartmentId) </div> <p><input type="submit" value="Учесть" /></p> </fieldset> } <br /> <table> @foreach (Activ item in ViewBag.Activs){ <tr> <td>@item.Id</td> <td>@item.Department.Name</td> <td>@item.CabNumber</td> <td>@Html.ActionLink("Удалить", "DeleteActiv", new { id=item.Id }) </td> </tr> } </table>
Тут простейший код, в принципе все то же самое, что и в случае с отделами, только добавляется связанный список отделов.