Добавление контроллера (VB)

Рик Андерсон

В этом руководстве описаны основы создания веб-приложения ASP.NET MVC с помощью Microsoft Visual Web Developer 2010 Express с пакетом обновления 1 (SP1), который является бесплатной версией Microsoft Visual Studio. Перед началом работы убедитесь, что вы установили перечисленные ниже предварительные требования. Вы можете установить их все, щелкнув следующую ссылку: Установщик веб-платформы. Кроме того, вы можете установить необходимые компоненты по отдельности, используя следующие ссылки:

Если вы используете Visual Studio 2010 вместо Visual Web Developer 2010, установите необходимые компоненты, щелкнув следующую ссылку: Предварительные требования Для Visual Studio 2010.

В этом разделе доступен проект Visual Web Developer с VB.NET исходным кодом. Скачайте версию VB.NET. Если вы предпочитаете C#, переключитесь на версию этого руководства на C# .

MVC расшифровывается как model-view-controller. MVC — это шаблон разработки приложений, в рамках которого каждая часть отвечает отдельно:

  • Модель: данные для приложения.
  • Представления: файлы шаблонов, которые приложение будет использовать для динамического создания ответов HTML.
  • Контроллеры. Классы, которые обрабатывают входящие URL-запросы к приложению, извлекают данные модели, а затем указывают шаблоны представлений, которые отрисовывает ответ клиенту.

В этом руководстве мы рассмотрим все эти понятия и покажем, как использовать их для создания приложения.

Создайте контроллер, щелкнув правой кнопкой мыши папку Контроллеры в Обозреватель решений и выбрав команду Добавить контроллер.

AddController

Присвойте новому контроллеру имя HelloWorldController и нажмите кнопку Добавить.

2AddEmptyController

Обратите внимание на Обозреватель решений справа, что для вас создан новый файл с именем HelloWorldController.cs и что файл открыт в интегрированной среде разработки.

В блоке new public class HelloWorldController создайте два новых метода, которые выглядят, как показано в следующем коде. В качестве примера мы вернем строку HTML непосредственно из контроллера.

Namespace MvcMovie
    Public Class HelloWorldController
        Inherits System.Web.Mvc.Controller

        Public Function Index() As String
            Return "This is my default action..."
        End Function

        Public Function Welcome() As String
            Return "This is the Welcome action method..."
        End Function

    End Class
End Namespace

Контроллеру присвоено имя HelloWorldController , а новому методу — имя Index. Запустите приложение (нажмите клавишу F5 или CTRL+F5). После запуска браузера добавьте "HelloWorld" в путь в адресной строке. (На моем компьютере это http://localhost:43246/HelloWorld) Ваш браузер будет выглядеть, как на снимок экрана ниже. В приведенном выше методе код вернул строку напрямую. Мы сказали системе просто вернуть некоторый HTML- код, и это произошло!

Снимок экрана: браузер с текстом Это действие по умолчанию в окне.

ASP.NET MVC вызывает различные классы контроллеров (и различные методы действий в них) в зависимости от входящего URL-адреса. Логика сопоставления по умолчанию, используемая ASP.NET MVC, использует следующий формат для управления вызываемым кодом:

/[Controller]/[ActionName]/[Parameters]

Первая часть URL-адреса определяет класс контроллера для выполнения. Поэтому /HelloWorld сопоставляется с классом HelloWorldController . Вторая часть URL-адреса определяет метод действия в классе для выполнения. Поэтому /HelloWorld/Index приведет к выполнению IndexHelloWorldController метода класса . Обратите внимание, что нам нужно было только посетить /HelloWorld выше, и Index метод использовался по умолчанию. Это связано с тем, что метод с именем Index является методом по умолчанию, который будет вызываться на контроллере, если он не указан явным образом.

Перейдите по адресу http://localhost:xxxx/HelloWorld/Welcome. Выполняется метод Welcome, который возвращает строку "This is the Welcome action method..." (Это метод действия Welcome...). Сопоставление MVC по умолчанию — /[Controller]/[ActionName]/[Parameters]. Для этого URL-адреса контроллер имеет значение HelloWorld , а Welcome — метод . Мы еще не использовали [Parameters] часть URL-адреса.

Снимок экрана: браузер с текстом Это метод действия Welcome в окне.

Давайте немного изменим пример, чтобы можно было передать некоторые сведения о параметрах из URL-адреса в контроллер (например, /HelloWorld/Welcome?name=Scott&numtimes=4). Измените Welcome метод, чтобы включить два параметра, как показано ниже. Обратите внимание, что мы использовали функцию необязательных параметров VB, чтобы указать, что numTimes параметр по умолчанию должен иметь значение 1, если значение для этого параметра не передается.

Public Function Welcome(ByVal name As String, Optional ByVal numTimes As Integer = 1) As String
    Dim message As String = "Hello " & name & ", NumTimes is: " & numTimes
    Return "" & Server.HtmlEncode(message) & ""
End Function

Запустите приложение и перейдите по папке http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4. Вы можете попробовать различные значения для name и numtimes. Система автоматически сопоставляет именованные параметры из строки запроса в адресной строке с параметрами в методе .

Снимок экрана: браузер с текстом Hello Scott Num Times — 4 в окне.

В обоих примерах контроллер выполнял часть MVC, то есть представление и работу контроллера. Контроллер возвращает HTML напрямую. Обычно мы не хотим, чтобы контроллеры возвращали HTML напрямую, так как код становится очень громоздким. Вместо этого мы обычно используем отдельный файл шаблона представления для создания HTML-ответа. Давайте посмотрим, как мы можем это сделать.