Добавление контроллера. Основные сведения о ASP.NET MVC
Скотт Хансельман (Scott Hanselman)
Примечание
Обновленная версия, если это руководство доступно здесь с помощью Visual Studio 2013. В новом руководстве используется ASP.NET MVC 5, который предоставляет множество улучшений по сравнению с этим руководством.
В этом руководстве для начинающих рассматриваются основы ASP.NET MVC. Вы создадите простое веб-приложение, которое считывает и записывает данные из базы данных. Посетите центр обучения ASP.NET MVC , чтобы найти другие ASP.NET учебники и примеры MVC.
MVC расшифровывается как Модель, Представление, Контроллер. MVC — это шаблон разработки приложений, в рамках которого каждая часть отвечает за другую.
- Модель: данные приложения
- Представления: файлы шаблонов, которые приложение будет использовать для динамического создания ответов HTML.
- Контроллеры: классы, которые обрабатывают входящие URL-запросы к приложению, извлекают данные модели, а затем указывают шаблоны представлений, которые отображают ответ клиенту.
В этом руководстве мы рассмотрим все эти понятия и покажем, как использовать их для создания приложения.
Давайте создадим контроллер, щелкнув правой кнопкой мыши папку контроллеров в Обозреватель решения и выбрав команду Добавить контроллер.
Присвойте новому контроллеру имя HelloWorldController и нажмите кнопку Добавить.
Обратите внимание на то, что в Обозреватель решений справа был создан новый файл с именем HelloWorldController.cs, который теперь открыт в интегрированной среде разработки.
Создайте два новых метода, которые выглядят следующим образом в новом открытом классе HelloWorldController. В качестве примера мы вернем строку HTML непосредственно из нашего контроллера.
using System.Web.Mvc;
namespace Movies.Controllers
{
public class HelloWorldController : Controller
{
public string Index()
{
return "This is my default action...";
}
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Контроллер называется HelloWorldController, а новый метод — Index. Запустите приложение снова, как и раньше (нажмите кнопку воспроизведения или клавишу F5). После запуска браузера измените путь в адресной строке, где http://localhost:xx/HelloWorld
xx — это любой номер, выбранный компьютером. Теперь ваш браузер должен выглядеть, как на снимок экрана ниже. В приведенном выше методе мы вернули строку, переданную в метод с именем Content. Мы сказали, что система просто возвращает некоторый HTML, и это произошло!
ASP.NET MVC вызывает разные классы контроллера (и различные методы действий в них) в зависимости от входящего URL-адреса. Логика сопоставления по умолчанию, используемая ASP.NET MVC, использует следующий формат для управления выполняемым кодом:
/[Контроллер]/[Имя_действия]/[Параметры]
Первая часть URL-адреса определяет класс Controller для выполнения. Поэтому /HelloWorld сопоставляется с классом HelloWorldController. Вторая часть URL-адреса определяет метод Action в классе для выполнения. Поэтому /HelloWorld/Index вызовет выполнение метода Index() класса HelloWorldController. Обратите внимание, что мы только должны были посетить /HelloWorld выше, и метод Index был подразумеваем. Это связано с тем, что метод с именем Index является методом по умолчанию, который будет вызываться на контроллере, если он не указан явным образом.
Теперь перейдем к разделу http://localhost:xx/HelloWorld/Welcome.
Теперь метод Welcome выполнил и вернул свою HTML-строку.
Опять же, /[Controller]/[ActionName]/[Parameters], поэтому контроллер — HelloWorld, а в данном случае — метод Welcome. Мы еще не сделали параметры.
Давайте немного изменим наш пример, чтобы мы могли передать некоторые сведения из URL-адреса контроллеру, например,: /HelloWorld/Welcome?name=Scott&numtimes=4. Измените метод Welcome, включив два параметра, и обновите его, как показано ниже. Обратите внимание, что мы использовали функцию необязательных параметров C#, чтобы указать, что параметр numTimes должен по умолчанию иметь значение 1, если он не передается.
public string Welcome(string name, int numTimes = 1)
{
string message = "Hello " + name + ", NumTimes is: " + numTimes;
return "" + Server.HtmlEncode(message) + "";
}
Запустите приложение и перейдите http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4
к разделу Изменение значения имени и числовых значений по своему типу. Система автоматически сопоставляет именованные параметры из строки запроса в адресной строке с параметрами в методе .
В обоих примерах контроллер выполнял всю работу и возвращал HTML напрямую. Как правило, мы не хотим, чтобы наши контроллеры возвращали HTML напрямую, так как это оказывается очень громоздким в коде. Вместо этого мы обычно используем отдельный файл шаблона Представления для создания HTML-ответа. Давайте посмотрим, как мы можем это сделать. Закройте браузер и вернитесь в интегрированную среду разработки.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по