asp.net-mvc учебник                
            Начало работы с asp.net-mvc
        
        
            
    Поиск…
замечания
Архитектурный шаблон Model-View-Controller (MVC) разделяет приложение на три основных компонента: модель, представление и контроллер. Структура ASP.NET MVC предоставляет альтернативу шаблону ASP.NET Web Forms для создания веб-приложений. Структура ASP.NET MVC представляет собой легкую, высоко проверяемую среду представления, которая (как и для приложений на основе веб-форм) интегрирована с существующими функциями ASP.NET, такими как мастер-страницы и аутентификация на основе членства. Структура MVC определена в сборке System.Web.Mvc.
Структура MVC включает следующие компоненты:
- Модели . Объекты модели - это части приложения, которые реализуют логику для области данных приложения. Часто объекты модели извлекают и сохраняют состояние модели в базе данных. Например, объект Product может извлекать информацию из базы данных, работать с ней, а затем записывать обновленную информацию обратно в таблицу Products в базе данных SQL Server. В небольших приложениях модель часто представляет собой концептуальное разделение, а не физическое. Например, если приложение только считывает набор данных и отправляет его в представление, приложение не имеет физического уровня модели и связанных классов. В этом случае набор данных берет на себя роль модельного объекта.
 - Просмотров . Представления - это компоненты, отображающие пользовательский интерфейс приложения (UI). Как правило, этот пользовательский интерфейс создается из данных модели. Примером может служить представление редактирования таблицы Products, в которой отображаются текстовые поля, раскрывающиеся списки и флажки, основанные на текущем состоянии объекта Product.
 - Контроллеры . Контроллеры - это компоненты, которые обрабатывают взаимодействие пользователя, работают с моделью и в конечном итоге выбирают представление для визуализации, отображающее пользовательский интерфейс. В приложении MVC в представлении отображается только информация; контроллер обрабатывает и отвечает на ввод и взаимодействие пользователя. Например, контроллер обрабатывает значения строки запроса и передает эти значения модели, что, в свою очередь, может использовать эти значения для запроса к базе данных.
 
Версии
| Версия | Версия .NET | Дата выхода | 
|---|---|---|
| MVC 1.0 | .NET 3.5 | 2009-03-13 | 
| MVC 2.0 | .NET 3.5 / 4.0 | 2010-03-10 | 
| MVC 3.0 | .NET 4.0 | 2011-01-13 | 
| MVC 4.0 | .NET 4.0 / 4.5 | 2012-08-15 | 
| MVC 5.0 | .NET 4.5 | 2013-10-17 | 
| MVC 5.1 | .NET 4.5 | 2014-01-17 | 
| MVC 5.2 | .NET 4.5 | 2014-08-28 | 
| MVC 6.0 | .NET 4.5 | 2015-11-18 | 
| Core MVC 1.0 | .NET 4.5 | 2016-07-12 | 
| Core MVC 1.1 | .NET 4.5 | 2016-11-18 | 
Привет MVC!
ASP.NET MVC - это веб-приложение с открытым исходным кодом. Сам MVC представляет собой шаблон проектирования, который построен вокруг трех основных компонентов: model-view-controller .
Модель - Модели отражают ваши бизнес-объекты и являются средством передачи данных между контроллерами и представлениями.
View - Представления - это страницы, которые отображают и отображают данные модели пользователю. Представления ASP.NET MVC обычно пишутся с использованием синтаксиса Razor.
Контроллер. Контроллеры обрабатывают входящие HTTP-запросы от клиента и обычно возвращают одну или несколько моделей в соответствующий вид.
Возможности ASP.NET MVC:
- Идеально подходит для разработки сложных, но легких приложений
 - Он обеспечивает расширяемую и подключаемую структуру, которую можно легко заменить и настроить. Например, если вы не хотите использовать встроенный Razor или ASPX View Engine, то вы можете использовать любые другие сторонние механизмы просмотра или даже настроить существующие.
 - Использует компонентную конструкцию приложения, логически разделяя его на компоненты Model, View и Controller. Это позволяет разработчикам управлять сложностью крупномасштабных проектов и работать с отдельными компонентами.
 - Структура MVC повышает тестовую разработку и тестируемость приложения, поскольку все компоненты могут быть разработаны на основе интерфейса и протестированы с использованием макетных объектов. Следовательно, ASP.NET MVC Framework идеально подходит для проектов с большой командой веб-разработчиков.
 - Поддерживает все существующие обширные функции ASP.NET, такие как авторизация и аутентификация, мастер-страницы, привязка данных, пользовательские элементы управления, членство, маршрутизация ASP.NET и т. Д.
 - Он не использует концепцию состояния просмотра (которая присутствует в ASP.NET). Это помогает создавать приложения, которые легки и дают полный контроль над разработчиками.
 
Простое приложение MVC
Мы собираемся создать простое приложение MVC, которое отображает детали человека. Создайте новый проект MVC с помощью Visual Studio. Добавьте новую модель с именем Person to Models следующим образом:
public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}
 Добавьте новый контроллер в папку контроллеров:
public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };
        // Send model to View for displaying to user
        return View(person);
    }
}
 Наконец добавьте View to / Views / Home / folder с именем Index.cshtml :
@* Model for this view is Person *@
@model Hello_MVC.Models.Person
<h2>Hello @Model.FirstName !</h2>
<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>