Mvc4和5通用

1、背景:老项目WebForm开发 需要 融合到新项目Mvc5开发

2、需求:Url地址TruckDetail.aspx?id=455 达到效果 truck/455.html

3、不是最佳方案,但是个过度项目所以达到效果ok,欢迎丢转。

第一步:继承IRouteHandler

public class OldWebFormsRouteHandler : IRouteHandler
{
private string pageName = string.Empty;
private string id = string.Empty;
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{ pageName = requestContext.RouteData.GetRequiredString("oldPageName");
id = requestContext.RouteData.GetRequiredString("id"); string path="/Pages/" + this.pageName + ".aspx"; IHttpHandler MyHander = BuildManager.CreateInstanceFromVirtualPath(path, typeof(System.Web.UI.Page)) as IHttpHandler;
return MyHander;
}
}

第二步:在默认规则前ADD 注意.html

public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.Add("MyRoute", new Route("{oldPageName}/{id}.html", new OldWebFormsRouteHandler())); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}

第三步:修改Web.config

<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

第四步:aspx页面获得参数Request.QueryString["id"]换成RouteData.Values["id"]

<form id="form1" runat="server">
<div> id:<%=RouteData.Values["id"]==null?"yy":RouteData.Values["id"].ToString() %><br />
oldPageName:<%=RouteData.Values["oldPageName"]==null?"no":RouteData.Values["oldPageName"].ToString() %> </div>
</form>

效果:

转载请注明来源地址:http://www.cnblogs.com/huangyoum/p/4154338.html

asp.net mvc5 伪静态 WebForm的更多相关文章

  1. asp.net mvc5 伪静态

    asp.net mvc5 伪静态 WebForm Mvc4和5通用 1.背景:老项目WebForm开发 需要 融合到新项目Mvc5开发 2.需求:Url地址TruckDetail.aspx?id=45 ...

  2. ASP.NET MVC5实现伪静态

    目录 1.什么是伪静态?为什么要实现伪静态? 2.实现APS.NET MVC伪静态的方式有哪些? 3.那么如何实现使用ASP.NET MVC5的伪静态呢? (1)在路由注册中启用特性路由 (2)为需要 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)

    开发工具:VS2015(2012以上)+SQL2008R2以上数据库  您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB  升级后界面效果如下: 任务调度系统界面 http: ...

  4. ASP.NET MVC5 网站开发实践(一) - 项目框架

    前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过"摸着石头过河"吧.这段时间看了一些博主的文章收获很大,特别是 ...

  5. [Asp.net MVC]Asp.net MVC5系列——第一个项目

    目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...

  6. [Asp.net MVC]Asp.net MVC5系列——添加视图

    目录 系列文章 概述 添加视图 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 概述 在这一部分我们添加一个新的控制器HelloWorldController类, ...

  7. ASP.NET MVC5 网站开发实践(一) - 项目框架(转)

    前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过“摸着石头过河”吧.这段时间看了一些博主的文章收获很大,特别是@kencery,依 ...

  8. ASP.NET MVC5路由系统机制详细讲解

    请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css, ...

  9. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](十)

    前言 朋友们, 大家好,我还是Rector,写ASP.NET MVC 5系列文章[一步一步创建ASP.NET MVC5程序Repository+Autofac+Automapper+SqlSugar] ...

随机推荐

  1. .Net Core 之 图形验证码

    本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64 ...

  2. CSS3:flex布局应用

    想把先前的整理的东西贴出来,怎奈总是有额外事情发生,额,教训电脑要离水杯远点~~ 推荐一本书,<编写可维护的Javascript>这是Nicbolas C.Zakas写的,他的<Ja ...

  3. [译]angularjs directive design made easy

    原文: http://seanhess.github.io/2013/10/14/angularjs-directive-design.html AngularJS directives很酷 Angu ...

  4. PlayMaker 学习笔记

    1.v1.7.8.3版本无法使用全局变量,原因是Assets\Plugins\PlayMaker下的Resources文件夹变成中文了,无法创建全局变量文件,手动创建一个Resources文件夹即可

  5. C#深入浅出 C#语法中的重中之重——委托(四)

    入行半年多了,委托干什么用的还不知道,真心说不过去了,关键对这东西有点恐惧,主要是被老师吓的,记得我C#专业课老师在讲到委托时,原话是这样的,同学们,委托这个地方是难点,暂时不讲,讲了你也不懂,等你有 ...

  6. POJ 3252 Round Numbers

     组合数学...(每做一题都是这么艰难) Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7607 A ...

  7. 创业15条经验总结:温饱之后,创业公司CEO如何树“三观”?

    都说创业改变命运,事实上不是,创业,时时刻刻,可能连“命”都保不住!创业公司最重要的只有“活下去”.满足了这个.才有资格谈其他.公司连饭都开不了,还谈什么其他?创业公司如果连生存问题都解决不了,高位的 ...

  8. vs 工程连接错误

    现象: estMemPool.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: _ ...

  9. 【C语言入门教程】2.6 运算符

    运算符是程序中用于数值运算的操作符,C 语言的运算符可分为 算术运算符.关系与逻辑运算符 和 位操作运算符 这 3 类. 2.6.1 算术运算符 算术运算符用来完成基本的数值运算,如 加.减.乘.除, ...

  10. Cache and Virtual Memory

    Cache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(DynamicRandonAccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(StaticRando ...