Поделиться через


Создание контроллера (VB)

Стивен Уолтер

В этом руководстве Стивен Уолтер демонстрирует, как добавить контроллер в приложение MVC ASP.NET.

Цель этого руководства — объяснить, как создать новые ASP.NET контроллерах MVC. Вы узнаете, как создавать контроллеры с помощью меню Добавить контроллер в Visual Studio и путем создания файла класса вручную.

Использование параметра меню "Добавить контроллер"

Самый простой способ создать контроллер — щелкнуть правой кнопкой мыши папку Контроллеры в окне Обозреватель решений Visual Studio и выбрать пункт меню Добавить, контроллер (см. рис. 1). При выборе этого пункта меню откроется диалоговое окно Добавление контроллера (см. рис. 2).

Снимок экрана: окно Обозреватель решений Visual Studio с параметрами

Рис. 01. Добавление нового контроллера(щелкните для просмотра полноразмерного изображения)

Снимок экрана: диалоговое окно

Рис. 02. Диалоговое окно "Добавление контроллера" (щелкните для просмотра полноразмерного изображения)

Обратите внимание, что первая часть имени контроллера выделена в диалоговом окне Добавление контроллера . Каждое имя контроллера должно заканчиваться суффиксом Controller. Например, можно создать контроллер с именем ProductController , но не контроллер с именем Product.

Если вы создаете контроллер, в который отсутствует суффикс контроллера , вы не сможете вызвать контроллер. Не делайте этого - я потратил впустую бесчисленное количество часов своей жизни после того, как совершил эту ошибку.

Листинг 1. Controllers\ProductController.vb

Public Class ProductController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Product/

    Function Index() As ActionResult
        Return View()
    End Function

End Class

Контроллеры всегда следует создавать в папке Контроллеры. В противном случае вы будете нарушать соглашения ASP.NET MVC, и другим разработчикам будет сложнее понять ваше приложение.

Методы действий формирования шаблонов

При создании контроллера вы можете автоматически создавать методы действий Create, Update и Details (см. рис. 3). Если выбрать этот параметр, создается класс контроллера в листинге 2.

Автоматическое создание методов действий

Рис. 03. Автоматическое создание методов действий (щелкните для просмотра полноразмерного изображения)

Листинг 2. Controllers\CustomerController.vb

Public Class CustomerController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Customer/

    Function Index() As ActionResult
        Return View()
    End Function

    '
    ' GET: /Customer/Details/5

    Function Details(ByVal id As Integer) As ActionResult
        Return View()
    End Function

    '
    ' GET: /Customer/Create

    Function Create() As ActionResult
        Return View()
    End Function

    '
    ' POST: /Customer/Create

    <AcceptVerbs(HttpVerbs.Post)> _
    Function Create(ByVal collection As FormCollection) As ActionResult
        Try
            ' TODO: Add insert logic here
            Return RedirectToAction("Index")
        Catch
            Return View()
        End Try
    End Function

    '
    ' GET: /Customer/Edit/5

    Function Edit(ByVal id As Integer) As ActionResult
        Return View()
    End Function

    '
    ' POST: /Customer/Edit/5

    <AcceptVerbs(HttpVerbs.Post)> _
    Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
        Try
            ' TODO: Add update logic here

            Return RedirectToAction("Index")
        Catch
            Return View()
        End Try
    End Function
End Class

Эти созданные методы являются методами заглушки. Необходимо добавить фактическую логику для создания, обновления и отображения сведений для клиента самостоятельно. Но методы заглушки предоставляют вам хорошую отправную точку.

Создание класса контроллера

Контроллер MVC ASP.NET — это просто класс. При желании можно игнорировать удобный шаблон контроллера Visual Studio и создать класс контроллера вручную. Выполните следующие действия.

  1. Щелкните правой кнопкой мыши папку Контроллеры, выберите пункт меню Добавить, Создать элемент и выберите шаблон Класс (см. рис. 4).
  2. Назовите новый класс PersonController.vb и нажмите кнопку Добавить .
  3. Измените результирующий файл класса, чтобы класс наследовался от базового класса System.Web.Mvc.Controller (см. листинг 3).

Создание нового класса

Рис. 04. Создание нового класса(щелкните для просмотра полноразмерного изображения)

Листинг 3. Controllers\PersonController.vb

Public Class PersonController
    inherits Controller

    Function Index AS String
        Return "Hello World!"
    End Function

End Class

Контроллер в листинге 3 предоставляет одно действие с именем Index(), которое возвращает строку "Hello World!". Это действие контроллера можно вызвать, запустив приложение и запросив URL-адрес следующего вида:

http://localhost:40071/Person

Примечание

Сервер разработки ASP.NET использует случайный номер порта (например, 40071). При вводе URL-адреса для вызова контроллера необходимо указать правильный номер порта. Номер порта можно определить, наведите указатель мыши на значок сервера разработки ASP.NET в области уведомлений Windows (в правом нижнем углу экрана).