ASP.NET窗体和ASP.NET MVC在同一应用中混合使用的示例分析

发布时间:2021-10-28 09:29:38 作者:柒染
来源:亿速云 阅读:129

这期内容当中小编将会给大家带来有关ASP.NET窗体和ASP.NET MVC在同一应用中混合使用的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

不是所有的ASP.NET MVC Web应用程序都需要从头创建,也许您希望将现有的ASP.NET应用移植到ASP.NET MVC。在同一个应用同时使用ASP.NE窗体和ASP.NET MVC可能吗?答案是-完全可以。

在同一个应用同时使用ASP.NE窗体和ASP.NET MVC不仅是可行的,而且是相当容易的,因为ASP.NET MVC是在ASP.NET基础上构建的框架。实际上它们仅有一个关键处不同:ASP.NET是在System.Web名称空间下,而ASP.NET MVC在System.Web, System.Web.Routing, System.Web.Abstractions, 以及System.Web.Mvc四个名称空间下,这意味着,在现有ASP.NET应用程序中添加对这些库(assemblies)的引用,是组合应用这两种技术的起步。

ASP.NET MVC在ASP.NET基础上构建的另外一个优点是:应用数据能够很容易地在两种技术间共享。例如,Session这个状态对象在两种技术下都可以使用,这样使得通过Session状态来高效地共享数据。

一个ASP.NET窗体应用程序可以通过执行以下步骤,成为一个ASP.NET MVC应用程序。

1.在现有的ASP.NET应用程序中,添加以下库的引用:System.Web.Routing.dll, System.Web.Abstractions.dll, andSystem.Web.Mvc.dll;

2.在现有ASP.NET应用程序中添加Controllers,Views,Views/Shared文件夹;

3.修改web.config文件,如下(注意是修改ASP.NET应用程序现有的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中加入默认的ASP.NET MVC全局应用程序类(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);         }     }  }

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

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

以上四个步骤完成后,我们便可以开始添加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在同一应用中混合使用的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. ASP.NET中多层架构的示例分析
  2. Asp.Net MVC过滤器的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

asp.net asp.net mvc

上一篇:fedora 17硬盘怎么安装

下一篇:Mysql数据分组排名实现的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》