ASP.NET窗體和ASP.NETMVC在同一應(yīng)用中混合使用的示例分析

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)ASP.NET窗體和ASP.NET MVC在同一應(yīng)用中混合使用的示例分析,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)章貢,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575

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

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

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

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

1.在現(xiàn)有的ASP.NET應(yīng)用程序中,添加以下庫(kù)的引用: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,而不是覆蓋掉):

< ?xml version="1.0"?> <configuration>  <system.web>    <compilation debug="false">      <assemblies>        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral,                        PublicKeyToken=B77A5C561934E089"/>        <add assembly="System.Web.Extensions,                        Version=3.5.0.0, Culture=neutral,                        PublicKeyToken=31BF3856AD364E35"/>        <add assembly="System.Web.Abstractions,                        Version=3.5.0.0, Culture=neutral,                        PublicKeyToken=31BF3856AD364E35"/>        <add assembly="System.Web.Routing,                        Version=3.5.0.0, Culture=neutral,                        PublicKeyToken=31BF3856AD364E35"/>      </assemblies>    </compilation>    <pages>      <namespaces>        <add namespace="System.Web.Mvc"/>        <add namespace="System.Web.Mvc.Ajax"/>        <add namespace="System.Web.Mvc.Html" />        <add namespace="System.Web.Routing"/>        <add namespace="System.Linq"/>        <add namespace="System.Collections.Generic"/>      </namespaces>    </pages>    <httpModules>      <add name="UrlRoutingModule"           type="System.Web.Routing.UrlRoutingModule,                  System.Web.Routing, Version=3.5.0.0,                  Culture=neutral, PublicKeyToken=31BF3856AD364E35" />    </httpModules>  </system.web> </configuration>

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

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.Mvc;  using System.Web.Routing;   namespace MixingBothWorldsExample  {     public class Global : System.Web.HttpApplication     {         public static void RegisterRoutes(RouteCollection routes)         {             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");             routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");             routes.MapRoute(                "Default",  // Route name                "{controller}/{action}/{id}",  // URL with parameters                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults                 );         }         protected void Application_Start()         {             RegisterRoutes(RouteTable.Routes);         }     }  }

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

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

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

using System.Web.Mvc;  namespace MixingBothWorldsExample.Controllers  {     public class HomeController : Controller     {         public ActionResult Index()         {             ViewData["Message"] = "This is ASP.NET MVC!";             return View();         }     }  }
<%@ Page Language="C#"    AutoEventWireup="true"    CodeBehind="Index.aspx.cs"    Inherits="MixingBothWorldsExample.Views.Home.Index" %>  <!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 id="Head1" runat="server">    <title></title> </head> <body>    <div>        <h2><%=Html.Encode(ViewData["Message"]) %></h2>    </div> </body> </html>

上述就是小編為大家分享的ASP.NET窗體和ASP.NET MVC在同一應(yīng)用中混合使用的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:ASP.NET窗體和ASP.NETMVC在同一應(yīng)用中混合使用的示例分析
分享URL:http://muchs.cn/article28/gcidjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣面包屑導(dǎo)航、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化