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