Прочитать на английском

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


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

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

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

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

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

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

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

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

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

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

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

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;

namespace MvcApplication1.Controllers
{
    public class ProductController : Controller
    {
        //
        // GET: /Product/

        public ActionResult Index()
        {
            return View();
        }
    }
}

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

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

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

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

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;

namespace MvcApplication1.Controllers
{
    public class CustomerController : Controller
    {
        //
        // GET: /Customer/

        public ActionResult Index()
        {
            return View();
        }

        //
        // GET: /Customer/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Customer/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Customer/Create

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Customer/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /Customer/Edit/5

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}

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

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

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

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

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

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcApplication1.Controllers
{
    public class PersonController : System.Web.Mvc.Controller
    {
        public string Index()
        {
            return "Hello World!";
        }
    }
}

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

http://localhost:40071/Person

Примечание

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