Шрифт:
SelectCommand="SELECT * FROM [Persons]">
</asp:SqlDataSource>
<br/>
<asp:GridView ID="GridView1" 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>
Использование MVC Framework в существующих решениях WebForms
Рассмотрим сценарий расширения существующего WebForms-приложения с использованием MVC Framework. Для этого нужно выполнить несколько простых шагов:
1. Установить в свойствах веб-приложения версию .NET Framework 3.5, поскольку если приложение WebForms было разработано для версии .NET Framework 2.0, то MVC Framework для нее не поддерживается.
2. Добавить ссылки на сборки System.Web.Mvc и System.Web.Routing.
3. Зарегистрировать в файле web.config необходимые для функционирования MVC-приложения обработчики в разделе system.web/httpModules (листинг 2.9) и system/webServer/modules и system/webServer/handlers (листинг 2.10). Необходимые изменения выделены полужирным. Кроме того, поскольку в листингах 2.9 и 2.10 сборки указываются без описания версий, необходимо в директорию bin веб-приложения скопировать файлы System.Web.Mvc.dll и System.Web.Routing.dll. Либо указать полные имена сборок, посмотрев описания в тестовом MVC-приложении, которое стоит создать по такому случаю.
4. Зарегистрировать пространства имен, которые будут использовать представления (листинг 2.11).
5. Создать таблицу маршрутизации в файле global.asax (листинг 2.12).
6. Создать директорию /Controllers, разместить в ней контроллеры.
7. Создать директорию /Views и разместить в ней дерево представлений, отвечающее контроллерам и их действиям (рис. 2.5).
Листинг 2.9. Регистрация модуля MVC Framework в web.config
<system.web>
<httpModules>
<add name="UrlRoutingModule"
type=" System.Web.Routing.UrlRoutingModule,
System.Web.Routing" />
<add name="ScriptModule"
type="System.Web.Handlers.ScriptModule,
System.Web.Extensions"/>
</httpModules>
Листинг 2.10. Регистрация модулей и обработчиков MVC Framework в web.config
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="ScriptModule" preCondition="managedHandler"
type="System.Web.Handlers.ScriptModule,
System.Web.Extensions"/>
<add name="UrlRoutingModule" type="
System.Web. Routing.UrlRoutingModule,
System.Web.Routing" />
</modules>
<handlers>
<add name="ScriptHandlerFactory" verb="*"
path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions"/>
<add name="ScriptHandlerFactoryAppServices" verb="*"
path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions"/>
<add name="ScriptResource" preCondition="integratedMode"
verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions" />
<add name="MvcHttpHandler" preCondition="integratedMode" verb="*"
path=" *.mvc" type=" System.Web.Mvc.MvcHttpHandler,
System.Web.Mvc"/>
<add name="UrlRoutingHandler" preCondition="integratedMode"
verb="*" path="UrlRouting.axd"
type="System.Web.HttpForbiddenHandler, System.Web" />