| Суббота, 9 марта, 2013
Метки: ASP.NET MVC, ASP.NET Web API, Entity Framework, Knockout Комментарии: 0
В ASP.NET Web API контроллеры обрабатывают HTTP-запросы. В одностраничном шаблоне Web API применяется для CRUD-операций (create read update delete — «Создание чтение обновление удаление») со списками ToDoList и ToDoItem. В проекте контроллеры находятся в папке Controllers.
Рассмотрим класс ToDoListController. Он содержит один элемент данных:
private TodoItemContext db = new TodoItemContext();
ToDoItemContext используется для взаимодействия с Entity Framework, об этом рассказано ранее. Методы контроллера реализуют CRUD-операции. Web API маршрутизирует HTTP-запросы от клиента в соответствующие методы, согласно таблице:
HTTP-запрос | Метод контроллера | Описание |
---|---|---|
GET /api/todo | GetTodoLists | Получить коллекцию списков to-do. |
GET /api/todo/id | GetTodoList | Получить список to-do по ID. |
PUT /api/todo/id | PutTodoList | Обновить список to-do. |
POST /api/todo | PostTodoList | Создать новый to-do-список. |
DELETE /api/todo/id | DeleteTodoList | Удалить to-do-список. |
Заметим, что в некоторых URI есть значения ID. Например, это нужно для удаления списка по ID.
Код контроллера ToDoListController имеет некоторые интересные моменты:
Класс TodoController очень похож на TodoListController. Основное отличие в том, что он не реализует GET-методы, потому что клиент получает элементы to-do, через списки to-do.
Контроллеры MVC тоже расположены в папке Controllers. HomeController генерирует главную страницу приложения. Представление для этого контроллера находится в Views/Home/Index.cshtml. Это представление отображает разное содержимое, в зависимости залогинен пользователь или нет.
@if (@User.Identity.IsAuthenticated) { // .... }
Если пользователь авторизован – он увидит главную страницу приложения для управления списками. С противном случае ему будет предоставлена форма для ввода логина и пароля. Причем выбор содержимого страницы осуществляется на стороне сервера. Никогда не пытайтесь скрывать контент страницы на стороне клиента – все что будет отослано ответе HTTP, можно увидеть в HTTP сообщениях.
Copyright © CodeHint.ru 2013-2025 (v2.4.7 - работает на Angular Universal)Калькулятор инвест-портфеля