ASP.NET MVC Framework | страница 18
Реализация подхода MVC в WebForms
Продемонстрируем подход MVC для разработчиков, знакомых с технологией WebForms, выделив логику обработки страницы в контроллер, а саму страницу используя как компонент представления и модель, описывающую данные, размещаемые на странице.
Рассмотрим ASPX-страницу, приведенную в листинге 2.1. На этой странице размещены несколько элементов управления >Label, TextBox
и >Button
. Логика страницы должна быть простой, и в классической модели WebForms описывается в code-behind-файле, код которого приведен в листинге 2.2.
Листинг 2.1. Страница Default.aspx
><%@ Page Language="C#" AutoEventWireup="true"
> CodeBehind="Default.aspx.cs" Inherits="WebFormsMvc._Default" %>
>
>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>http://www.w3.org/1999/xhtml">
>
>
>
>
>
>
>
> Ответ сервера:
>
> Text="noKa HeT">
>
>
>
>
> Имя:
>
>
>
> runat="server">
>
>
>
>
> Фамилия:
>
>
>
> runat="server">
>
>
>
>
>
> Text="Coxpaнить" onclick="btnSave_Click" />
>
>
>
>
>
>
>
Листинг 2.2. Файл Default.aspx.cs
>using System;
>using WebFormsMvc.Controllers;
>namespace WebFormsMvc {
>{
> protected void btnSave_Click(object sender, EventArgs e) {
> lblResponse.Text = txtFirstName.Text + " "
> + txtLastName.Text; }
> }
>}
Для того чтобы выделить отдельный компонент контроллер, который будет отвечать за логику обработки запросов к странице, таких, например, как щелчок по кнопке или загрузка первоначальных значений в текстовые поля, необходимо обеспечить возможность контроллера модифицировать модель, отображением которой является представление. В случае ASPX-страницы моделью является собственно сама объектная модель страницы, поэтому именно к ней нужно предоставить доступ контроллеру — для этого достаточно отредактировать CS-файл, автоматически создаваемый Visual Studio для страницы, и сделать все поля, соответствующие элементам управления на форме, публичными, как это приведено в листинге 2.3.