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.