自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET窗體和ASP.NET MVC在同一應(yīng)用中混合使用

開發(fā) 后端
本文向您介紹如何將傳統(tǒng)ASP.NET窗體應(yīng)用遷移到ASP.NET MVC框架中;這樣,可以省去從頭創(chuàng)建ASP.NET MVC Web應(yīng)用的時間。

不是所有的ASP.NET MVC Web應(yīng)用程序都需要從頭創(chuàng)建,也許您希望將現(xiàn)有的ASP.NET應(yīng)用移植到ASP.NET MVC。在同一個應(yīng)用同時使用ASP.NE窗體和ASP.NET MVC可能嗎?答案是-完全可以。

在同一個應(yīng)用同時使用ASP.NE窗體和ASP.NET MVC不僅是可行的,而且是相當(dāng)容易的,因?yàn)锳SP.NET MVC是在ASP.NET基礎(chǔ)上構(gòu)建的框架。實(shí)際上它們僅有一個關(guān)鍵處不同:ASP.NET是在System.Web名稱空間下,而ASP.NET MVC在System.Web, System.Web.Routing, System.Web.Abstractions, 以及System.Web.Mvc四個名稱空間下,這意味著,在現(xiàn)有ASP.NET應(yīng)用程序中添加對這些庫(assemblies)的引用,是組合應(yīng)用這兩種技術(shù)的起步。

ASP.NET MVC在ASP.NET基礎(chǔ)上構(gòu)建的另外一個優(yōu)點(diǎn)是:應(yīng)用數(shù)據(jù)能夠很容易地在兩種技術(shù)間共享。例如,Session這個狀態(tài)對象在兩種技術(shù)下都可以使用,這樣使得通過Session狀態(tài)來高效地共享數(shù)據(jù)。

一個ASP.NET窗體應(yīng)用程序可以通過執(zhí)行以下步驟,成為一個ASP.NET MVC應(yīng)用程序。

1.在現(xiàn)有的ASP.NET應(yīng)用程序中,添加以下庫的引用:System.Web.Routing.dll, System.Web.Abstractions.dll, andSystem.Web.Mvc.dll;

2.在現(xiàn)有ASP.NET應(yīng)用程序中添加Controllers,Views,Views/Shared文件夾;

3.修改web.config文件,如下(注意是修改ASP.NET應(yīng)用程序現(xiàn)有的web.config,而不是覆蓋掉):

 

  1. < ?xml version="1.0"?> 
  2. <configuration> 
  3.  <system.web> 
  4.    <compilation debug="false"> 
  5.      <assemblies> 
  6.        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral,  
  7.                       PublicKeyToken=B77A5C561934E089"/> 
  8.        <add assembly="System.Web.Extensions,  
  9.                       Version=3.5.0.0, Culture=neutral,  
  10.                       PublicKeyToken=31BF3856AD364E35"/> 
  11.        <add assembly="System.Web.Abstractions,  
  12.                       Version=3.5.0.0, Culture=neutral,  
  13.                       PublicKeyToken=31BF3856AD364E35"/> 
  14.        <add assembly="System.Web.Routing,  
  15.                       Version=3.5.0.0, Culture=neutral,  
  16.                       PublicKeyToken=31BF3856AD364E35"/> 
  17.      </assemblies> 
  18.    </compilation> 
  19.    <pages> 
  20.      <namespaces> 
  21.        <add namespace="System.Web.Mvc"/> 
  22.        <add namespace="System.Web.Mvc.Ajax"/> 
  23.        <add namespace="System.Web.Mvc.Html" /> 
  24.        <add namespace="System.Web.Routing"/> 
  25.        <add namespace="System.Linq"/> 
  26.        <add namespace="System.Collections.Generic"/> 
  27.      </namespaces> 
  28.    </pages> 
  29.    <httpModules> 
  30.      <add name="UrlRoutingModule" 
  31.           type="System.Web.Routing.UrlRoutingModule,  
  32.                 System.Web.Routing, Version=3.5.0.0,  
  33.                 Culture=neutralPublicKeyToken=31BF3856AD364E35/> 
  34.    </httpModules> 
  35.  </system.web> 
  36. </configuration> 

4.配置路由。往Global.asax中加入默認(rèn)的ASP.NET MVC全局應(yīng)用程序類(Global Application Class)。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Mvc;  
  6. using System.Web.Routing;  
  7.  
  8. namespace MixingBothWorldsExample  
  9. {  
  10.    public class Global : System.Web.HttpApplication  
  11.    {  
  12.        public static void RegisterRoutes(RouteCollection routes)  
  13.        {  
  14.            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  
  15.            routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");  
  16.            routes.MapRoute(  
  17.               "Default",  
  18. // Route name  
  19.               "{controller}/{action}/{id}",  
  20. // URL with parameters  
  21.               new { controller = "Home", action = "Index", id = "" }  
  22. // Parameter defaults  
  23.                );  
  24.        }  
  25.        protected void Application_Start()  
  26.        {  
  27.            RegisterRoutes(RouteTable.Routes);  
  28.        }  
  29.    }  

請注意以下一行代碼,它防止ASP.NET窗體的請求被路由到ASP.NET MVC中:

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

以上四個步驟完成后,我們便可以開始添加ASP.NET MVC控制器和視圖了,例如:

  1. using System.Web.Mvc;  
  2. namespace MixingBothWorldsExample.Controllers  
  3. {  
  4.    public class HomeController : Controller  
  5.    {  
  6.        public ActionResult Index()  
  7.        {  
  8.            ViewData["Message"] = "This is ASP.NET MVC!";  
  9.            return View();  
  10.        }  
  11.    }  
  1. <%@ Page Language="C#" 
  2.    AutoEventWireup="true" 
  3.    CodeBehind="Index.aspx.cs" 
  4.    Inherits="MixingBothWorldsExample.Views.Home.Index" %> 
  5.  
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  7.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  8. <html xmlns="http://www.w3.org/1999/xhtml" > 
  9. <head id="Head1" runat="server"> 
  10.    <title></title> 
  11. </head> 
  12. <body> 
  13.    <div> 
  14.        <h1><%=Html.Encode(ViewData["Message"]) %></h1> 
  15.    </div> 
  16. </body> 
  17. </html> 

 

【編輯推薦】

  1. ASP.NET MVC教程:創(chuàng)建TaskList應(yīng)用程序
  2. ASP.NET MVC教程:理解模型、視圖和控制器
  3. 在ASP.NET MVC中使用UpdatePanel
  4. ASP.Net MVC框架配置與分析
  5. 簡單理解ASP.NET MVC基本知識
責(zé)任編輯:佚名 來源: geez的博客
相關(guān)推薦

2009-07-23 15:44:39

ASP.NET MVC

2009-07-31 12:43:59

ASP.NET MVC

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-20 12:59:53

ASP.NET MVCASP.NET框架的功

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-27 13:39:06

Web窗體頁ASP.NET

2009-07-22 10:09:59

ASP.NET MVC

2009-07-23 14:31:20

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-22 17:45:35

ASP.NET教程

2011-09-22 10:58:56

ASP.NET

2009-07-22 09:36:54

使用UpdataModASP.NET MVC

2009-07-20 15:30:11

ASP.NET應(yīng)用

2009-07-22 16:34:36

使用T4ASP.NET MVC

2009-07-27 14:46:16

XML和ASP.NET
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號