不是所有的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"?>
- PublicKeyToken=B77A5C561934E089"/>
- Version=3.5.0.0, Culture=neutral,
- PublicKeyToken=31BF3856AD364E35"/>
- Version=3.5.0.0, Culture=neutral,
- PublicKeyToken=31BF3856AD364E35"/>
- Version=3.5.0.0, Culture=neutral,
- PublicKeyToken=31BF3856AD364E35"/>
- type="System.Web.Routing.UrlRoutingModule,
- System.Web.Routing, Version=3.5.0.0,
- Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
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" %>
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%=Html.Encode(ViewData["Message"]) %>
新闻名称:ASP.NET窗体和ASP.NETMVC在同一应用中混合使用
URL标题:http://www.shufengxianlan.com/qtweb/news40/371890.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联