Книга: ASP.NET MVC Framework

Внедрение страниц WebForms в MVC-приложения

Внедрение страниц WebForms в MVC-приложения

Чтобы использовать страницу WebForms в MVC-приложении, нет необходимости писать большое количество кода. Поскольку MVC-приложение по сути является ASP.NET-приложением, и при его создании нет препятствий к использованию WebForms, все, что нужно сделать — объяснить системе маршрутизации MVC Framework, что для страниц WebForms эту самую систему маршрутизации использовать не надо. Для этого достаточно добавить в файле Global.asax в метод RegisterRoutes правило для игнорирования путей к страницам ASPX:

routes.IgnoreRoute("{resource}.aspx/{"pathInfo}");

После этого в MVC-приложение можно добавить стандартную ASPX-страницу, например WebForm1.aspx, код которой приведен в листинге 2.8, и для этой страницы будет обеспечена полноценная функциональность WebForms, что подтверждает рис. 2.4.


Листинг 2.8. Страница WebForml.aspx

<%@ Page Language="C#" AutoEventWireup="true"
      CodeBehind="WebForm1.aspx.cs"
      Inherits="MvcWebFormsCompositeApp.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form runat="server">
    <asp:SqlDataSource runat="server"
      ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
      SelectCommand="SELECT * FROM [Persons]">
    </asp:SqlDataSource>
    <br/>
    <asp:GridView runat="server"
         AutoGenerateColumns="False" DataKeyNames="PersonId"
         DataSourceID="SqlDataSource1">
      <Columns>
        <asp:BoundField DataField="PersonId"
             HeaderText="PersonId"
             InsertVisible="False" ReadOnly="True"
             SortExpression="PersonId" />
        <asp:BoundField DataField="LastName"
             HeaderText="LastName" SortExpression="LastName" />
        <asp:BoundField DataField="FirstName"
             HeaderText="FirstName" SortExpression="FirstName" />
      </Columns>
    </asp:GridView>
  </form>
</body>
</html>

Оглавление книги


Генерация: 1.550. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз